![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CM_MOUSEENTER etc. ;Можно ли словить, не содавая потомка? [D6]
Нежить © (2003-01-11 22:43:00)То есть не хочу так:
TMyComp = class(TWinCtrl)
procedure MouseEnter(var Mess... и т.д.
как ещё можно реализовать подобный обработчик?
Нежить (2003-01-12 10:20:00) [1]
> А не проще использовать ключевое слово message
Это как? Так?
TMainForm = class(TForm)
private
procedureMouseEnter(var Mess{{... и т.д...}}
age: TMessage); messageCM_MOUSEENTER;
Но тогда - это метод формы, и работать он будет именно с ней, а мне надо метод компонента.
> предложение Alex-eraser было всего лишь вариацией примера
Оно было лишь вариацией вопроса.
> 2 Rouse_
> A: ...AllocateHWnd, при более глубоком рассмотрении оно надежнее.
> B: ...почти грамотную заготовку для переопределения...
???:
A: Аргументы? Как можно использовать в данном случае? Все равно TWndMethod
B: Кто? Где?
say Thanx Everybody.
ПС: А вообще разделяемые обработчики - это просто прекрасно, ибо они уменьшают визуальный размер модуля, что облегчает навигацию.
ППС: Прекрасный сайт.
Rouse_ (2003-01-12 06:00:00) [2]> Оно (12.01.03 04:18)
Не хочу входить в оффтопик но всетаки предложение Alex-eraser было всего лишь вариацией примера. Не во всех случаях оно подходит, это уже выбирать программисту, что ему нужно. В отношении "роднее или не роднее" - они абсолютно одинаковы
Желаю успехов
ЗЫ: Именно в данной постановке вопроса я бы воспользовался вариантом TTCustomDelphiMaster (в принципе я очень-очень редко вижу кривой код с его стороны, так что рекомендую :)
ЗЗЫ: Но вообще при таком переопределении рекомендую AllocateHWnd, при более глубоком рассмотрении оно надежнее
ЗЗЗЫ: Кстати (автор) вы привели почти грамотную заготовку для переопределения приват функций и процедур
Оно (2003-01-12 04:18:00) [3], конечно, да!
см. Rouse_ © (12.01.03 02:35)
>> Alex-eraser (12.01.03 02:10)
>Это уже будет просто вариация приведенного примера
Но, зато это будет роднее для Дельфи.
Rouse_ (2003-01-12 02:35:00) [4]> Alex-eraser (12.01.03 02:10)
Это уже будет просто вариация приведенного примера
Желаю успехов
Alex-eraser (2003-01-12 02:10:00) [5]А не проще использовать ключевое слово message (читай справку) прям в модуле формы.
Нежить (2003-01-11 23:11:00) [6]say Спасибо, я видел раньше, но не мог найти - вспомнить, как это делать
TTCustomDelphiMaster (2003-01-11 23:01:00) [7]Подменить WindowProc
TForm1 = class(TForm)
private
procedure NewProc(var Msg: TMessage);
...
var
Form1: TForm1;
OldProc: TWndMethod;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
OldProc := Image1.WindowProc;
Image1.WindowProc := NewProc;
end;
procedure TForm1.NewProc(var Msg: TMessage);
begin
case Msg.Msg of
CM_MOUSEENTER: Label1.Caption := "Enter";
CM_MOUSELEAVE: Label1.Caption := "Exit";
end;
OldProc(Msg);
end;