2015-09-07 57 views
0

Comm_Ethernet.dfm我宣布TServerSocket类型的组件:为什么在设计时找不到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 

TServerSocket单位System.Win.ScktComp这是在RTL声明,但它似乎并没有因为当我睁开形式可在设计时它抱怨:

没有发现

TServerSocket类 [忽略] [关闭] [忽略所有]

然而,我的项目编译并运行得很好(当这个表单未在IDE中打开时)。我如何摆脱这个错误?

回答

1

ScktComp中的组件已弃用并已使用很长时间。您需要使用不同的组件,例如Indy。贬损的一个重要原因是这些组件不是跨平台的。

如果您将dclsocketsNNN.bpl软件包安装到IDE中,您仍然可以在设计时使用ScktComp组件。据推测Embarcadero默认不会安装这个软件包,因为它包含不推荐的组件。

+0

“他们”和“他们”是否指'TServerSocket'对象?还是更广泛的东西? – DBedrenko

+2

'ScktComp'中的组件 –

0

无论出于何种原因,默认情况下,包含此设备的BPL软件包未安装在IDE中。

你必须去:

组件 - >安装包 - >添加

(根据你的Delphi版本变化)Embarcadero\RAD Studio\9.0\bin然后选择

如何找出其中包含一个单元的RTL BPL封装对我来说是一个谜;它似乎没有记录在任何地方。

+1

“*出于任何原因*” - 因为该包中的组件在几年前已弃用。 –

相关问题