Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > DBGrdEh вместо click подсунуть keyPress


Автор: Sponger 22.3.2006, 11:46
Как сделать что-бы при нажатии мышкой на checkBox, DBGridEh думал что нажат пробел
и сответственно обрабатывал keypress а не click

Автор: _hunter 22.3.2006, 11:56
а в click вызвать OnkeyPress -- не судьба?

Автор: Sponger 23.3.2006, 07:03
Можно. Но тогда обрабатывается keyPress, а затем всетаки отрабатывает click.
А мне надо именно подменить, чтобы DBGridEh считал что нажат keyPress а click не было.

Автор: _hunter 23.3.2006, 11:38
ну так после отработки keyPress выходи из click -- тогда click отрабатывать не будет...

Автор: Sponger 23.3.2006, 13:58
мне нужно что-бы не только OnClick прекратился, но и все остальные процедуры этого DBGridEh которые выполняются после OnClick .

а exit прекращает только одну процедуру и передает управление следующей, а в дальнейшем DBGridEh всеравно считает что click был.

P.S.
Просто вся фишка в том, что когда нажимаешь пробел на checkBox`e, то ставится галочка и DBGridEh выходит из режима редактирования, а если мышкой щелкнуть на checkBox`e то ячейка остается в режиме редактирования.

Вот мне и надо сделать чтобы на мышь была реакция как на пробел.

Автор: _hunter 23.3.2006, 14:05
какие это "остальные"?
+ кто мешает и их не выполнять?

Автор: Sponger 23.3.2006, 14:22
как?

Автор: _hunter 23.3.2006, 14:56
флаг заведи...

Автор: Sponger 23.3.2006, 15:06
Цитата
P.S.
Просто вся фишка в том, что когда нажимаешь пробел на checkBox`e, то ставится галочка и DBGridEh выходит из режима редактирования, а если мышкой щелкнуть на checkBox`e то ячейка остается в режиме редактирования.
Вот мне и надо сделать чтобы на мышь была реакция как на пробел.



может это можно сделать как-то по другому. Если да то как?

Цитата

флаг заведи...


и что я буду с этим флагом делать? Он что запретит DBGridEh`у выполнять его внутренни код?

Автор: _hunter 23.3.2006, 15:13
нет к него никакого внутреннего кода.

Автор: Sponger 24.3.2006, 10:59
Когда делаю трассировку программы то видно, что после процедур которые я муг описать, в DBGridEh выполняются процедуры из билиотеки EhLib, т.е. перерисовка грида и т.д., и как раз там ставится галка на checkBox и соответсвенно запись в базу, так вот мне и надо что-бы те процедуры считали что-нажат пробел а не клик мышью.

Автор: _hunter 24.3.2006, 11:21
значит вешай хук. в нем и подменяй. хотя это и извращение...

Автор: Sponger 24.3.2006, 11:45
Во первых как это сделать smile
Вл вторых как сделать что-бы не было извращением.


Автор: _hunter 24.3.2006, 12:32
во-первых -- поиск по форуму.
во-вторых -- самоклепный компонент можно сварганить...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)