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

Вниз

CM_MOUSEENTER etc. Можно ли словить, не содавая потомка?   Найти похожие ветки 

 
Нежить   (2003-01-11 22:43) [0]

То есть не хочу так:

TMyComp = class(TWinCtrl)
procedure MouseEnter(var Mess... и т.д.

как ещё можно реализовать подобный обработчик?


 
TTCustomDelphiMaster ©   (2003-01-11 23:01) [1]

Подменить 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;


 
Нежить   (2003-01-11 23:11) [2]

say Спасибо, я видел раньше, но не мог найти - вспомнить, как это делать


 
Alex-eraser   (2003-01-12 02:10) [3]

А не проще использовать ключевое слово message (читай справку) прям в модуле формы.


 
Rouse_ ©   (2003-01-12 02:35) [4]

> Alex-eraser (12.01.03 02:10)

Это уже будет просто вариация приведенного примера

Желаю успехов


 
Оно   (2003-01-12 04:18) [5]

, конечно, да!
см. Rouse_ © (12.01.03 02:35)
>> Alex-eraser (12.01.03 02:10)

>Это уже будет просто вариация приведенного примера

Но, зато это будет роднее для Дельфи.


 
Rouse_ ©   (2003-01-12 06:00) [6]

> Оно (12.01.03 04:18)

Не хочу входить в оффтопик но всетаки предложение Alex-eraser было всего лишь вариацией примера. Не во всех случаях оно подходит, это уже выбирать программисту, что ему нужно. В отношении "роднее или не роднее" - они абсолютно одинаковы

Желаю успехов

ЗЫ: Именно в данной постановке вопроса я бы воспользовался вариантом TTCustomDelphiMaster (в принципе я очень-очень редко вижу кривой код с его стороны, так что рекомендую :)

ЗЗЫ: Но вообще при таком переопределении рекомендую AllocateHWnd, при более глубоком рассмотрении оно надежнее

ЗЗЗЫ: Кстати (автор) вы привели почти грамотную заготовку для переопределения приват функций и процедур


 
Нежить   (2003-01-12 10:20) [7]


> А не проще использовать ключевое слово message

Это как? Так?

TMainForm = class(TForm)
private
procedure
MouseEnter(var Mess {{... и т.д...}}
age: TMessage); message CM_MOUSEENTER;

Но тогда - это метод формы, и работать он будет именно с ней, а мне надо метод компонента.


> предложение Alex-eraser было всего лишь вариацией примера

Оно было лишь вариацией вопроса.

> 2 Rouse_
> A: ...AllocateHWnd, при более глубоком рассмотрении оно надежнее.
> B: ...почти грамотную заготовку для переопределения...

???:
A: Аргументы? Как можно использовать в данном случае? Все равно TWndMethod
B: Кто? Где?

say Thanx Everybody.

ПС: А вообще разделяемые обработчики - это просто прекрасно, ибо они уменьшают визуальный размер модуля, что облегчает навигацию.

ППС: Прекрасный сайт.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
3-72165
Black Cat
2003-01-02 11:45
2003.01.23
ORA-04021 (таймаут операции блокировки)


1-72276
Соловьев
2003-01-15 11:10
2003.01.23
Мастера, кто -нибудь сталкивался с распознаванием русских букв?


9-72019
Xein
2002-07-24 09:09
2003.01.23
Аркаоид


1-72251
UltraFreak
2003-01-14 18:49
2003.01.23
Чтение файла по шаблону (...или чо-то в этом роде)


1-72318
Gerda
2003-01-14 22:48
2003.01.23
По поводу коммон контрола SysListView32