經過大量搜索後,它看起來像我必須分配RegisterComponentsProc
和RegisterPropertyEditorProc
,我已經完成。如何在運行時註冊組件和屬性編輯器?
但是,我想我可以打電話給我的設計時間寄存器功能,即<myComponentUnit>.Register();
。
當我這樣做,我得到堆棧溢出,因爲,嗯...
procedure myComponentUnit.Regiter;
begin
RegisterPropertyEditor(TypeInfo(Integer),
TMyComponent, 'myProperty', TMyProperty);
末;
procedure RegisterPropertyEditor(PropertyType: PTypeInfo;
ComponentClass: TClass; const PropertyName: string;
EditorClass: TPropertyEditorClass);
begin
if Assigned(RegisterPropertyEditorProc) then
RegisterPropertyEditorProc(PropertyType, ComponentClass, PropertyName,
EditorClass);
end;
所以,我叫.Register();
這就要求RegisterPropertyEditor()
其稱之爲RegisterPropertyEditorProc()
這就要求RegisterPropertyEditor()< === aaargh!
那麼,我應該在我的RegisterPropertyEditorProc的主體中有什麼?
經過進一步搜索,它看起來像我想直接調用DesignEditors.RegisterPropertyEditor()
,但它不是在接口部分...
不,如果你寫自己的財產編輯器,我希望。不幸的是,沒有答案在http://www.drbob42.com/delphi/property.htm或http://delphi.about.com/library/bluc/text/uc092501a.htm等 – Mawg 2010-08-25 06:17:54
感嘆,我想你是正確。我會找到另一種方式。 – Mawg 2010-08-25 10:08:33
同樣,屬性編輯器(和組件編輯器)僅在設計時可用,因爲它們僅在設計時包中實現,並且不允許在運行時可執行文件中使用設計時包。你首先想完成什麼? – 2010-08-25 23:18:23