background image

    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;