Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизДоступ к событиям вложенного объекта через инспектор объектов. Найти похожие ветки
← →
Grihan (2004-03-22 11:51) [0]Здравствуйте. При разработке компонента возникла необходимость часть свойств перенести в отдельный класс (например TProperties). Таким образом доступ к ним осуществляется через объект Properties. Все замечательно - за исключением одного нюанса - в инспекторе объектов не видны события. Вот пример кода:
type
TTest = procedure (Sender: TObject) of object;
TProperties = class(TPersistent)
private
FProp1: Integer;
FProp2: TTest;
procedure SetProp1(const Value: Integer);
published
property Prop1: Integer read FProp1 write SetProp1;
property OnProp2: TTest read FProp2 write FProp2;
end;
TEditGR = class(TEdit)
private
FProperties: TProperties;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Properties: TProperties read FProperties write FProperties;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Test", [TEditGR]);
end;
{ TProperties }
procedure TProperties.SetProp1(const Value: Integer);
begin
FProp1 := Value;
if Assigned(FProp2) then
FProp2(Self);
end;
{ TEditGR }
constructor TEditGR.Create(AOwner: TComponent);
begin
inherited;
FProperties := TProperties.Create;
end;
destructor TEditGR.Destroy;
begin
FProperties.Free;
inherited;
end;
Подскажите пожалуйста - как разрешить данный недостаток?
Спасибо.
← →
Юрий Зотов © (2004-03-22 12:14) [1]Либо пишите свой редактор свойства для события, либо выносите это событие в родительский класс (через Get-Set). Второе проще.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c