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

Вниз

Наследник DBGrid и обработка клавиш при активном InplaceEdit   Найти похожие ветки 

 
KSergey ©   (2003-10-21 14:08) [0]

Проблема проста: надо повешать в компоненту свою реакцию на некую клавишу. Но если активен InplaceEdit - то клавиши идут к нему. При этом в TInplaceEdit.KeyDown (ну т.е. у предка InplaceEdit"ора) вызывается только обработчик, повешанный на OnKeyDowd parent"а. А собственный его метод KeyDown не вызывается.
Более того. Сам класс TDBGridInplaceEdit определен в секции implementation, т.е. я не могу сделать своего наследника TDBGridInplaceEdit и создавать уже его (в CreateEditor) со своей обработкой чего надо.

Вопрос: куда привеситься в наследнике TDBGrid, чтобы обрабатывать в том числе и клавиши при активном редактировании поля колонки?


 
KSergey ©   (2003-10-21 14:09) [1]

Да, вариант "скопировать текст реализации TDBGridInplaceEdit в свой модуль" - не нравится, мягко говоря...


 
Vlad ©   (2003-10-21 14:20) [2]

Application.OnMessage


 
KSergey ©   (2003-10-21 15:14) [3]

[2] Vlad © (21.10.03 14:20)

Ага, а его переопредеит кто-нибудь - и приехали
Да и для компонента такие штуки делать - не смешно, однако.

Если кому интересно - выкрутился так.
Переопределил ф-цию окна для InplaceEdit"ора

function TdoDBGrid.CreateEditor: TInplaceEdit;
begin
Result := inherited CreateEditor;
FInplEdPrevWndProc := Result.WindowProc;
Result.WindowProc := InplEdWndProc;
end;

Ну а в InplEdWndProc уже определяюсь с нужным сообщением - и далее по сценарию...
Во всяком случае работает, но от дельных предложений не откажусь ;)



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

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

Наверх




Память: 0.47 MB
Время: 0.098 c
1-41680
Jimboo
2003-10-23 15:15
2003.11.13
Помогите с реализацией


4-42226
Ded Moroz
2003-09-02 16:35
2003.11.13
Изменение размера элемента менюшки


1-41484
Dark Elf
2003-10-28 18:02
2003.11.13
Подключение dll в проект


7-42148
SDW_syscoder
2003-09-03 11:05
2003.11.13
Работа с внешним девайсом через COM порт


1-41567
Vivk
2003-11-04 08:23
2003.11.13
Qreport , FreeReport & толщина линий