Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват сообщения в наследнике. [D7, WinXP]


Max4 ©   (2006-09-25 15:15:00) 

есть класс


 TMyClass = class(TCustomControl)
   ***
   protected
     procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
 end;
   ***



***
procedure TSpanGrid2.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 inherited MouseDown(Button, Shift, X,Y);
 ***
end;
***


В Form1 создаю экземпляр TMyClass. Как мне в форме Form1 перехватить MouseDown класса TMyClass ?


Max4   (2006-09-25 15:29:00) [1]


 TMyClass = class(TCustomControl)
   private
     FOnMouseDown: TMouseEvent;
     procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
   public
     property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;

****
procedure TMyClass.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 inherited MouseDown(Button, Shift, X,Y);
 if Assigned(FOnMouseDown) then
   FOnMouseDown(Self, Button, Shift, X, Y);
****



   fMyClass.OnMouseDown := MyClassMouseDown;


Max4   (2006-09-25 15:25:00) [2]

плин, сорьки. перегрелся видимо. удалите этот пост наф.


clickmaker   (2006-09-25 15:23:00) [3]


> [2] Max4   (25.09.06 15:21)

а что там такого вытечет?
да и не надо ничего создавать, это уже унаследовано от TControl


Max4   (2006-09-25 15:21:00) [4]

Мне что в моём классе TMyClass нужно создавать FOnMouseDown типа TMouseEvent со "всем вытекающим"?


clickmaker   (2006-09-25 15:17:00) [5]

inherited MouseDown(Button, Shift, X,Y);
if Assigned(FOnMouseDown) then
 FOnMouseDown(Self, Button, Shift, X, Y);

событие сгенерить, а в форме добавить обработчик


Наверх

Титульная страница Поиск, карта сайта Написать письмо