![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват сообщения в наследнике. [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);
событие сгенерить, а в форме добавить обработчик