2013-01-15 8 views
13

XE2'deki bazı bileşenler üzerinde çalışıyorum. Birimin birimine, düştüğü formun kullanım maddesine eklenmiş olması mümkün mü?Özel bir Delphi bileşenini, kullanım maddesine birden çok birim ekleyebilir miyim?

Örnek: Birimin oluşturduğu ve kurduğum bir paketten TCustomComponent öğesini seçtiğinizde, formun kullanım maddesine CustomComponent eklenir. Ayrıca GlobalConstant birimini de eklemek istiyorum.

Bunun yapılıp yapılamayacağını bilen var mı?

cevap

16

Bileşeniniz için bir tasarım zamanı paketi oluşturun (zaten yoksa). Bu pakette, ISelectionEditor arabirimini (TSelectionEditor sınıfından türetmenin en kolay yolu), herhangi bir Form/Frame/DataModule öğesinin uses maddesinde görünmesini istediğiniz ek birimleri bildirmek için sanal RequiresUnits() yöntemini geçersiz kılan bir sınıf oluşturun. Bu senin bileşenini kullanır. Ardından, RegisterSelectionEditor() numaralı telefonu arayarak (RegisterComponents()'a ek olarak) paketinizin Register() işlevine sahip olmasını sağlayın.

Indy 10IdContext ve IdSocketHandle birimleri uses maddelerine eklenen olsun emin olmak için, onun TIdTCPServer, TIdCmdTCPClient ve TIdUDPServer bileşenleri için tam olarak bunu yapar. Indy'nin bunu nasıl uyguladığını görmek için IdCoreSelectionEditors.pas ve IdRegisterCore.pas ünitelerine bakın.

Güncelleme: IdCoreSelectionEditors.pas ve IdProtocolsSelectionEditors.pas tane Mart 2014 başına bileşen SelectionEditor sınıflarının tümü Indy 10 çıkarıldı IdRegisterCore biriminin kendisine uygulanan yeni bir sınıfı ile ikame edilmiştir. Bu yeni SelectionEditor sınıfı, tüm Indy bileşenleri için kayıtlıdır ve tasarım parametrelerine ait tüm Indy bileşenlerinin tüm örneklerini ve tüm parametrelerin veri türlerini RTTI kullanarak ve atanmış herhangi bir olay işleyicisi için geri dönüş değerlerini kullanarak tüm örneklerini arar. uses maddesine eklenmek üzere raporlanacak birimler.

İlgili konular