更改 TIdTCPClient.Connect 中的错误消息

Change error message in TIdTCPClient.Connect

我正在使用 TIdTCPClient。貌似很简单,但是我执行tcpClient->Connect();

的时候找不到方法改报错信息"Already connected"

所以我设置了 HostPortConnectTimeout,然后我调用了 Connect().

我尝试使用 WriteLn() 更改该错误消息,也许这就是解决方案,但我可能以错误的方式使用它。

我只想显示给客户端(可能在 ShowMessage()TLabel 中),不一定要显示给服务器。

如果客户端已经连接到服务器(TIdTCPClient::Connected() returns true),你不能调用TIdTCPClient::Connect(),你必须调用TIdTCPClient::Disconnect() 先.

如果您询问如何更改错误消息文本本身,它是一个本地化字符串(RSAlreadyConnectedIdResourceStringsCore 单元中),因此只需 localize your app 即可。

否则,您可以简单地使用 try..catch 来捕获引发的 EIdAlreadyConnected 异常,然后显示您想要的任何文本,无论您想要什么,例如:

try {
  tcpClient->Connect();;
}
const (const EIdAlreadyConnected &) {
    ShowMessage("Already connected! Please disconnect first.");
}
catch (const Exception &) {
    ShowMessage("Error Connecting!");
}