Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизОпределить откуда создавался component Найти похожие ветки
← →
webpauk (2006-03-14 13:56) [0]в своем компоненте я использую Tlabel.
1.constructor TMyComponent.Create;
begin
label:=Tlabel.create(MainForm);
label.parent =MainForm;
Label.onClick:=MainForm.labelonclick;
end;procedure MainForm.labelonclick(Sender:Tobject);
begin
... как отсюда получить доступ к TMyComponent.end;
← →
Джо © (2006-03-14 16:41) [1]1.
> constructor TMyComponent.Create;
Это неправильный конструктор для наследников TComponent;
2.
> label:=Tlabel.create(MainForm);
Так делать нельзя категорически.
← →
Leonid Troyanovsky © (2006-03-14 19:05) [2]
> Джо © (14.03.06 16:41) [1]
> > label:=Tlabel.create(MainForm);
> Так делать нельзя категорически.
Как, собс-но, и две следующие.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-03-14 19:06) [3]
> webpauk (14.03.06 13:56)
> procedure MainForm.labelonclick(Sender:Tobject);
> begin
> ... как отсюда получить доступ к TMyComponent.end;
Sender as TMyComponent
--
Regards, LVT.
← →
Жуков Олег (2006-03-14 20:39) [4]> Sender as TMyComponent
Sender будет label а не MyComponent.
← →
Жуков Олег (2006-03-14 20:51) [5]> webpauk
Как вариант:
Определи новое событие у своего компонентаprivate
FOnLabelClick: TNotifyEvent;
published
property OnLabelClick: TNotifyEvent read FOnLabelClick write FOnLabelClick;
Назначь событию Label.OnClick метод своего компонента (реализованный не в классе формы, а в твоём компоненте,procedure TMyComponent.LabelClick(Sender...))
,
а в этом методе уже вызывай OnLabelClick (если назначен такой обработчик)if Assigned(FOnLabelClick) then
FOnLabelClick
Твой компонент ничего не должен знать про MainForm. По многим причинам, одна из них - ты же хочешь, что бы твой компонент можно было использовать на произвольной форме, а не только в главной форме конкретно этой одной программы, иначе вообще, зачем он нужен.
← →
Жуков Олег (2006-03-14 21:01) [6]Здесь просто недописАл, чтобы не было недоразумений:
if Assigned(FOnLabelClick) then
FOnLabelClick(Self)
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.044 c