Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TGraphicControl - OnKeyDown


d_oleg ©   (2002-10-11 10:28:00) 

Подскажите пожалуйста, как заставить потомка от TGraphicControl ловить нажатия клавиш?


han_malign   (2002-10-11 11:09:00) [1]

причем CN_KEYDOWN это WM_KEYDOWN+CN_BASE приходит при нажатии кнопки во время захвата Control-а мышью (для Drag-n-Drop)
(единственное место где я нашел его с поясннением, хотя в TWinControl с ним какие то пляски с бубном)


Skier   (2002-10-11 11:05:00) [2]

>han_malign
Ага. Точно. Был не прав.


han_malign   (2002-10-11 11:02:00) [3]

2 Skier
CM_DIALOGKEY пользовательское сообщение, которое вызывается в TWinControl по CN_KEYDOWN, а человеку нужно в TGraphicControl


d_oleg   (2002-10-11 10:54:00) [4]

Ok, понял. Попробую.


Skier   (2002-10-11 10:54:00) [5]

>d_oleg


> для управления с клавы движением фигуры, которую отрисовываю
> на TGraphicControl



procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY; ?


han_malign   (2002-10-11 10:52:00) [6]

а он у тебя фокус получает?
без фокуса он и не должен ничего ловить.
З.Ы. А фокус появляется опять таки с TWinControl, так что тебе еще фокус протаскивать.
З.З.Ы Насколько я понял, ты делаешь Control с тонким интерфейсом, тогда в controls.pas и выдергивай все что тебе нужно из TWinControl.


d_oleg   (2002-10-11 10:47:00) [7]

ну в-принципе любые клавиатурные. для управления с клавы движением фигуры, которую отрисовываю на TGraphicControl.


Skier   (2002-10-11 10:36:00) [8]

>d_oleg
А какие клавиши тебя интересуют ?


d_oleg   (2002-10-11 10:34:00) [9]

если б так было всё просто. не ловит он так нифига.


han_malign   (2002-10-11 10:33:00) [10]

private
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;

что стоит залезть в Controls.pas и посмотреть как там все реализованно,
а вообще, для этих вещей следует использовать более функциональный TCustomControl


Наверх

Титульная страница Поиск, карта сайта Написать письмо