2013-01-15 14 views

回答

16

爲你的組件創建一個設計時包(如果你還沒有的話)。在該包中,創建一個實現ISelectionEditor接口的類(最簡單的方法是從TSelectionEditor類派生),覆蓋其虛擬RequiresUnits()方法,以報告任何您希望出現在任何Form/Frame/DataModule的uses子句中的附加單元使用你的組件。然後,通過調用RegisterSelectionEditor()(除了RegisterComponents()),讓包的Register()函數註冊該類。

Indy 10正是這一點爲它TIdTCPServerTIdCmdTCPClient,並TIdUDPServer組件,以確保IdContextIdSocketHandle單位被添加到uses條款。查看IdCoreSelectionEditors.pasIdRegisterCore.pas單元,瞭解Indy如何實現這一點。

更新:所述IdCoreSelectionEditors.pasIdProtocolsSelectionEditors.pas單位從印第10在2014年三月的所有每分量SelectionEditor類的除去與在IdRegisterCore單元本身中實現的新的單一的類所取代。這個新的SelectionEditor類是爲所有Indy組件註冊的,它會查找所有在設計時放置的Indy組件的實例,使用所有參數的數據類型的RTTI和任何分配的事件處理程序的返回值來知道哪些報告要包括在uses條款中的單元。

相關問題