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

Вниз

TKOLEcmListEdit и HDN_TRACK   Найти похожие ветки 

 
Rusya   (2007-09-09 14:32) [0]

Привет всем, такая проблема: что-то не могу поймать HDN_TRACK в KOLEcmListEdit"e. Вот обработчик OnMessage контрола:

function TForm1.ecmListEdit1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
Result:= false;
if ( Msg.message = WM_NOTIFY ) then
 if ( PNMHDR(Msg.lParam)^.code = HDN_TRACK ) then MsgOk("  ");
end;

В чем проблема, подскажите?


 
Galkov ©   (2007-09-10 09:09) [1]

Насколько я разбираюсь в гинекологии, WM_NOTIFY винда отправляет паренту.
А KOL-овский аттач НЕ переправляет это сообщение нужному контроллу, НО вызывает обработку динамических хэндлеров этого самого нужного контролла.

Поэтому, по onMessage вы ничего и не получаете. НО, получили бы при пристегивании вашего обработчика через аттач.

Мне именно так кажется....


 
Rusya   (2007-09-10 12:26) [2]

А разве обработчик не пристегивается аттачем? По идее, должно быть именно так. Иначе как доходят другие сообщения, чем WM_NOTIFY так отличается?


 
Galkov ©   (2007-09-10 15:02) [3]


> А разве обработчик не пристегивается аттачем?

Простите, но ответ на этот вопрос зависит от понимания магического слова ОБРАБОТЧИК

Приходится экстрасенсорить, глядя на Ваши посты.
К сожалению.
Пока я думал, что Вы делали что-то типа такого:
Control.onMessage := TForm1.ecmListEdit1Message;
Обработчик именно события onMessage стоит в оконной ф-ии контролла.
Всегда стоит, и никем никуда не пристегивается вроде - он там живет...

А под магическим словом аттач понимается (мной, по крайней мере) то, чего пристегивается методом TControl.AttachProc.
Фактический параметр этого метода, грубо говоря.

Так вот, по умолчанию, в оконной ф-ии контролла обработчиков сообщения WM_NOTIFY - нет. Но они пристегиваются конструктором _NewCommonControl.
Точнее: WndProcCommonNotify - к самому контроллу , а WndProcNotify - к паренту.

Поведение WndProcNotify я открыл Вам выше: он НЕ вызывает оконную ф-ию контролла назначения, в которой живет обработчик onMessage.

Это так сделано сегодня - я не виноват. Что вижу, о том и пою...
Собственно, именно такая система обработки для WM_NOTIFY - и у меня сомнения вызывает в  ее правильности...
Правда, совсем в другой связи...


 
Rusya   (2007-09-12 12:21) [4]


> Это так сделано сегодня - я не виноват. Что вижу, о том
> и пою...Собственно, именно такая система обработки для WM_NOTIFY
> - и у меня сомнения вызывает в  ее правильности... Правда,
>  совсем в другой связи...

т.е. для того чтобы ловить WM_NOTIFY, надо самому пристегивать обработчик по AttachProc?


 
Galkov ©   (2007-09-12 13:17) [5]


> Мне именно так кажется....

:))



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1209113412
ZENsan
2008-04-25 12:50
2008.05.25
Куда девается памаять?


3-1197498119
Wolf
2007-12-13 01:21
2008.05.25
Вопрос по SQLite базу данных


2-1209142279
timekiller
2008-04-25 20:51
2008.05.25
Drag-n-Drop


2-1209055057
Alexey
2008-04-24 20:37
2008.05.25
Как подключить компонент


15-1207796490
Tirael
2008-04-10 07:01
2008.05.25
электричество