在Comm_Ethernet.dfm我声明一个类型的组件TServerSocket:
object frmCommEthernet: TfrmCommEthernet
object ServerSocket1: TServerSocket
Active = False
Port = 5555
ServerType = stNonBlocking
OnClientConnect = ServerSocket1ClientConnect
OnClientDisconnect = ServerSocket1ClientDisconnect
OnClientRead = ServerSocket1ClientRead
OnClientError = ServerSocket1ClientError
Left = 808
Top = 8
end
end
Run Code Online (Sandbox Code Playgroud)
TServerSocket是在 RTL 中的单元中声明的System.Win.ScktComp,但它在设计时似乎不可用,因为当我打开表单时,它会抱怨:
未找到 TServerSocket 类 [忽略] [取消] [全部忽略]
但是,我的项目编译并运行得很好(当此表单未在 IDE 中打开时)。我该如何摆脱这个错误?
中的组件ScktComp已被弃用,并且已经弃用很长时间了。您应该使用不同的组件,例如 Indy。弃用的一个重要原因是这些组件不是跨平台的。
ScktComp如果将dclsocketsNNN.bpl包安装到 IDE 中,您仍然可以在设计时使用这些组件。据推测,Embarcadero 默认情况下不会安装此软件包,因为它包含已弃用的组件。