Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Обработыка событий в классах   Найти похожие ветки 

 
BorisMor ©   (2004-04-08 12:59) [0]

Имеется класс (назовем его A) наследуемый от TForm
А обрабатывается событие OnKeyDown.
Требуется что бы тот кто радился от класса A тоже смог обработать это событие.

Проблемма: после обаботки события в классе A наследнику не приходит сообщений.

Про inherited лучше не говрить так как у меня не полуилось
Как решить проблемму ?


 
Гаврила   (2004-04-08 13:22) [1]

в классе "А" нужно не захватывать на себя событие "OnKeyDown", а переопределять динамический метод
procedure TWinControl.KeyDown(var Key: Word; Shift: TShiftState);

И разумеется, при переопределении не забыит вызвать inherited


 
BorisMor ©   (2004-04-08 13:40) [2]

А как ? пример можно.
Я пока решил проблемму через отлов сообщения WM_KEYDOWN, но не эстетично это :)


 
Семен Сорокин ©   (2004-04-08 14:27) [3]

TMyForm = class(TForm)
 ...
 protected
   procedure KeyDown(var Key: Word; Shift: TShiftState); override;
 ...
 end;

procedure TMyForm.KeyDown(var Key: Word; Shift: TShiftState);
begin
// твои действия
inherited KeyDown(Key, Shift)
end;


 
BorisMor ©   (2004-04-09 06:31) [4]

Ну как мне ккажится в TForm нет KeyDown поэтомму выдается:
Declaration of "KeyDown" differs from previous declaration.


 
ЮЮ ©   (2004-04-09 06:40) [5]

>Ну как мне ккажится

А сообщение, что твое объявление этого метода отличается от описания метода у предка, говорит о другом


 
ЮЮ ©   (2004-04-09 06:42) [6]

или в implementation заголовок не такой, как в interface



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
7-1077698501
LK
2004-02-25 11:41
2004.04.25
Измерение в микросекундах


11-1063796734
Revolter
2003-09-17 15:05
2004.04.25
VCL: (ssCtrl in shift); KOL: ?


8-1074781380
Samerly
2004-01-22 17:23
2004.04.25
Наложение 256-цветного альфа-канала средствами API


3-1080629375
Daniel
2004-03-30 10:49
2004.04.25
создание DB класса


3-1080304046
senya
2004-03-26 15:27
2004.04.25
как объявить пользовательскую функцию ?