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

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

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
procedure
MouseEnter(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;


Наверх

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