Я хочу реализовать свой собственный DBGrid. Моя проблема в том, что я мало знаю о компонентах. Как я могу переопределить событие onkeydown?

Учебное пособие по расширению функциональности компонентов было бы здорово.

0
opc0de 2 Янв 2012 в 17:42
3
Из вашего вопроса я делаю вывод, что вы новичок в этом вопросе. Вы не должны начинать с написания компонента сетки; это безумно сложно.
 – 
Leonardo Herrera
2 Янв 2012 в 17:52
Я просто хочу расширить функциональность с помощью базовой вещи, такой как добавочный поиск, если я переопределю метод KeyDown, этого будет достаточно, я думаю...
 – 
opc0de
2 Янв 2012 в 18:08
Перейдите здесь, чтобы найти Implemention of an incremental search capability с образцом TComboBox, и здесь для TDBGrid.
 – 
menjaraz
2 Янв 2012 в 18:31

1 ответ

Вы не переопределяете события, а методы, которые их запускают. Событие OnKeyDown запускается методом KeyDown, который в свою очередь вызывается методом DoKeyDown (запускается сообщением WM_KEYDOWN). Таким образом, одним из них является метод, который вы должны переопределить в своем пользовательском элементе управления, в зависимости от того, на каком этапе вы хотите перехватить нажатие клавиши.

Кстати, есть отличная статья Питера Ниже о том, как работает обработка сообщений ключей VCL: A Key's Odyssey. Убедитесь, что вы прочитали и это.

3
ain 2 Янв 2012 в 19:24