更改TIdTCPClient.Connect中的错误消息

问题描述

我正在使用TIdTCPClient。这似乎很简单,但是执行"Already connected"

时我找不到改变错误消息tcpClient->Connect();方法

因此,我设置了HostPortConnectTimeout,然后将其称为Connect()

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

我只想向客户端显示(可能在ShowMessage()TLabel显示),而不必向服务器显示

解决方法

如果客户端已经连接到服务器(TIdTCPClient::Connect()返回TIdTCPClient::Connected()),则无法调用true,必须先调用TIdTCPClient::Disconnect()

如果您要询问如何更改错误消息文本本身,它是一个本地化的字符串(RSAlreadyConnected单元中的IdResourceStringsCore),因此仅在需要时localize your app

否则,您可以简单地使用try..catch来捕获引发的EIdAlreadyConnected异常,然后根据需要显示任意文本,例如:

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