RegisterPropertyEditor( TypeInfo( TYourContainedClass ),TYourContainer,'YourContainedPropery',TClassProperty ) ; |
Все это задокументировано в справке помощи по созданию компонентов. Первым всегда идет параметр TypeInfo() с контейнерным классом, затем сам контейнерный класс, затем имя контейнерного свойства, затем TClassProperty, который регистрирует расширение свойства класса.
А где взять реальный примерчик?
Посмотрите как это делаю я. Сохраните приведенный модуль с именем CONTAIN.PAS и добавите его к вашей палитре.
------------------------CONTAIN.PAS--------------------------------
unit Contain; interface usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, ExtCtrls; typeTContainer = class( TComponent )privateFImage : TImage ;publicconstructor Create( AOwner : TComponent ) ; override ;publishedproperty Image : TImage read FImage write FImage ;end ; procedure Register; implementation uses DsgnIntf ; constructor TContainer.Create( AOwner : TComponent ) ; begininherited Create( AOwner ) ;FImage := TImage.Create( Self ) ;end ; procedure Register;beginRegisterComponents('Samples', [TContainer]);RegisterPropertyEditor( TypeInfo( TImage ),TContainer,'Image',TClassProperty ) ;end; end. |
----------------------------------------------------------------
Это все?
Mike Scott
Mobius Ltd. [000414]