Utwórz pakiet czasu projektowania dla swojego komponentu (jeśli jeszcze go nie masz). W tym pakiecie utwórz klasę, która implementuje interfejs ISelectionEditor
(najprostszym sposobem jest wyprowadzenie z klasy TSelectionEditor
), przesłaniając jej wirtualną metodę RequiresUnits()
, aby zgłosić wszelkie dodatkowe jednostki, które mają być wyświetlane w klauzuli uses
dowolnego formularza/ramki/modułu danych który używa twojego komponentu. Następnie, aby funkcja pakietu Register()
pakietu mogła zarejestrować tę klasę, należy wywołać RegisterSelectionEditor()
(oprócz RegisterComponents()
).
Indy 10 robi dokładnie to za jego TIdTCPServer
, TIdCmdTCPClient
i TIdUDPServer
składników, aby upewnić się, że IdContext
i IdSocketHandle
jednostki dodane do uses
klauzul. Przyjrzyj się jednostkom IdCoreSelectionEditors.pas
i IdRegisterCore.pas
, aby zobaczyć, jak Indy je implementuje.
Aktualizacja: the IdCoreSelectionEditors.pas
i IdProtocolsSelectionEditors.pas
jednostki zostały usunięte z Indy 10 w marcu 2014 roku wszystkie klasy per-komponent SelectionEditor zostały zastąpione nowym jednej klasy realizowanego w samej jednostce IdRegisterCore
. Ta nowa klasa SelectionEditor jest zarejestrowana dla wszystkich komponentów Indy i wyszukuje wszystkie wystąpienia dowolnego składnika Indy, który został umieszczony w czasie projektowania, używając RTTI typów danych wszystkich parametrów i wartości zwracanych dla wszystkich przypisanych procedur obsługi zdarzeń, aby wiedzieć, które jednostki do uwzględnienia w klauzuli uses
.