Главная страница
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.016 c
15-1208088137
cevek
2008-04-13 16:02
2008.05.25
Заказ. Нужно распаковать программу.


2-1209201104
Vasja
2008-04-26 13:11
2008.05.25
Имя компьютера


15-1208086982
Verbatim512
2008-04-13 15:43
2008.05.25
Часы + будильник


2-1209758552
KiLLiR
2008-05-03 00:02
2008.05.25
Цвет текста в Edit е со свойством Enabled=False


2-1209372377
молодой
2008-04-28 12:46
2008.05.25
перенос из word-a