Вниз
Скачать: CL | DM;

Не могу перехватить CM_CANCELMODE...   Найти похожие ветки 

 
NAlexey ©   (2003-08-22 15:34) [0]

Никак не могу перехватить CM_CANCELMODE. Задача такая:
Выкидывать под InplaceEditor в сетке свой контрол например ListBox, короче сделать из ячейки Combobox. Я не пишу новой компоненты а просто переопределяю WndProc InplaceEditor на свой и ловлю WM_KillFocus и CM_CANCELMODE как делается если пишется обычный ComboBox. Так вот CancelMode не ловится и открытый лист не закрывается:

FOldWnd: Pointer;
FNewWnd: Pointer;
procedure InplaceHook(var AMsg: TMessage);

дальше -

FOldWnd := Pointer(GetWindowLong(InplaceEditor.Handle, GWL_WNDPROC));
Pop.Show(100, 100); //Для примера.
FNewWnd := MakeObjectInstance(InplaceHook);
SetWindowLong(InplaceEditor.Handle, GWL_WNDPROC, Longint(FNewWnd));

дальше -


procedure TMyGrid.InplaceHook(var AMsg: TMessage);
begin
with AMsg do case Msg of
WM_CANCELMODE,
WM_KILLFOCUS:
begin
SetWindowLong(InplaceEditor.Handle, GWL_WNDPROC, Longint(FOldWnd));
FreeObjectInstance(FNewWndProc);
end else
Result := CallWindowProc(FOldWnd, InplaceEditor.Handle, Msg, WParam, LParam);
end;
end;

Не прячется всплывшее окно и все тут, wm_killfocus ловит а cancelmode нет...


 
Игорь Шевченко ©   (2003-08-22 15:43) [1]

http://delphi.vitpc.com/helloworld/nogrid.htm если о ComboBox"е речь


 
NAlexey ©   (2003-08-22 15:57) [2]

Вот я и говорю, интересно, как этот пример справиться вот с этим-1) Кладем на форму Grid делаем доступным для редактирования.
2) Кладем на форму Combobox делаем невидимым и добавляем айтемов.
3) В нужный момент показываем в нужном месте открывая лист комбобокса.
Вопрос - если щелкнуть по заголовку формы то фокус не уйтет из ячейки, тащим форму а ComboBox остается на месте.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
6-89436
Мякс
2003-09-02 19:00
2003.10.27
отследить подключение и отключение


1-89291
Lam
2003-10-14 10:39
2003.10.27
Компонент


14-89492
Мазут Береговой
2003-10-09 01:22
2003.10.27
Сегодня праздник! : Календарь рыболова: Сергии Радонежский


1-89221
-=GaLaN=-
2003-10-15 11:35
2003.10.27
OnKeyPress


4-89655
Barez
2003-08-19 14:10
2003.10.27
Шрифт и его размер в STATIC




   Наверх