Текущий архив: 2008.04.27;
Скачать: CL | DM;
Вниз
Динамическое зменение события у компонентов, помещаемых на форму? Найти похожие ветки
← →
Mishenka (2008-03-31 15:10) [0]Пишу компонент потомок от TForm. Нужно сделать, чтобы всем компонентам, которые бросают на форму в событие OnKeyUp подставлялся метод от формы.
Пробовал сделать следующим образом:procedure TMyForm.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (AComponent is TWinControl) and (Operation = opInsert) then
TWinControl(AComponent).OnKeyUp := DoneKeyUp;
if (AComponent is TWidgetControl) and (Operation = opInsert) then
TWidgetControl(AComponent).OnKeyUp := DoneKeyUp;
end;
однако пишет Undeclared identifier OnKeyUp, потому-что в TWinControl и TWidgetControl свойство OnKeyUp объявлено как private. Как всё-таки поменять событие у всех помещаемых на форму компонентов, не перечисляя всех возможных типов ?
← →
Palladin © (2008-03-31 15:18) [1]
Type
THackWinControl=Class(TWinControl)
Public
Property OnKeyUp;
End;
THackWidgetControl=Class(TWinControl)
Public
Property OnKeyUp;
End;
procedure TMyForm.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (AComponent is TWinControl) and (Operation = opInsert) then
THackWinControl(AComponent).OnKeyUp := DoneKeyUp;
if (AComponent is TWidgetControl) and (Operation = opInsert) then
THackWidgetControl(AComponent).OnKeyUp := DoneKeyUp;
end;
← →
Mishenka (2008-03-31 15:32) [2]Так ведь всякие там TCombobox, TListBox, TEdit наследуются от TWinControl и TWidgetControl и разве они унаследуют это свойство от THackWidgetControl ?
← →
Игорь Шевченко © (2008-03-31 15:34) [3]
> Так ведь всякие там TCombobox, TListBox, TEdit наследуются
> от TWinControl
> разве они унаследуют это свойство от THackWidgetControl
> ?
RTFS: Controls.pas
← →
Palladin © (2008-03-31 15:52) [4]
> Mishenka (31.03.08 15:32) [2]
это я описАлся конечно неTHackWidgetControl=Class(TWinControl)
, аTHackWidgetControl=Class(TWidgetControl)
← →
Leonid Troyanovsky © (2008-03-31 18:14) [5]
> Mishenka (31.03.08 15:10)
> Пишу компонент потомок от TForm. Нужно сделать, чтобы всем
> компонентам, которые бросают на форму в событие OnKeyUp
> подставлялся метод от формы.
Странный дизайн.
Может достаточно TAplicationEvents или даже KeyPreview.
А если, все же, решаем исходную задачу, то неясно нужно ли,
чтобы оное отображалось в инспекторе объектов, т.е. в дизайнтайме,
и нужно ли, чтобы назначенный для некоторого контрола обработчик
мог заменять пользователь оной формы.
--
Regards, LVT.
← →
Mishenka (2008-04-01 09:41) [6]
> Leonid Troyanovsky © (31.03.08 18:14) [5]
> Странный дизайн.
> Может достаточно TAplicationEvents или даже KeyPreview
Да, действительно KeyPreview лучше. Спасибо!
Страницы: 1 вся ветка
Текущий архив: 2008.04.27;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.018 c