Форум: "Основная";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c