I := Pos('.', Str);
Num := Copy(Str, 1, I - 1);
Delete(Str, 1, I);
Arr[K] := Num;
end;
Arr[4] := Str;
try
DotCnt := 0;
For I := 1 to 4 do
begin
K := StrToInt(Arr[I]);
//每字节的值应介于 0~255 之间
if ((K >= 0) and (K <= 255)) then
Inc(DotCnt);
end;
//四个字节都满足 0~255 之间,则合法
if(DotCnt = 4) then
Result := True;
except
end;
end;
//在窗体的 private 节中添加如下 procedure SetStatusText(PanelId: Integer; Text: string);
procedure TMainFrm.SetStatusText(PanelId: Integer; Text: string);
begin
StatusBar1.Panels[PanelId].Text := Text;
end;
3.在 Caption 为"取得服务列表"按钮的 OnClick 事件中书写如下代码:
//以下为该按钮 OnClick 事件处理代码
procedure TMainFrm.Button8Click(Sender: TObject);
var
I : Integer;
Cn: OleVariant;
Str: string;
begin
Button1.Enabled := False; //设置连接按钮不可用
Button2.Enabled := False; //设置关闭按钮不可用
try
SocketCn.Close;
ServerListBox.Items.Clear;
if IsLegalIp(Edit1.Text) then
SocketCn.Address := Edit1.Text
else
SocketCn.Host := Edit1.Text;