2015-09-07 22 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

「*出於任何原因*」 - 因爲該包中的組件在幾年前已棄用。 –

相關問題