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

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

Определить нажатие кнопки [D7, XP]


i2e ©   (2013-08-16 12:38:00) 

Как отловить событие нажатия кнопки, в главной форме? Событие формы OnKeyDown не вызывается когда фокус находится на каком-либо элементе, например, в строке Edit.
И когда-то уже такое делал, а как - вспомнить не могу..


i2e   (2013-08-19 06:41:00) [1]

свойство KeyPreview - в моем случае оказался самый простой к реализации вариант.
его и оставил. всё получилось.


stas   (2013-08-16 17:24:00) [2]

Можно использовать ActionList и не морочить голову.


[ВладОшин]   (2013-08-16 14:06:00) [3]

да, с ТАБ, походу, только так
можно посмотреть как в TCustomForm реализовано (почти также :)
т.е.
 public      { Public declarations }
   procedure CMDialogKey(var Message: TCMDialogKey);  message CM_DIALOGKEY;
 end;


[ВладОшин]   (2013-08-16 14:06:00) [4]

а зачем, кстати это надо может быть вообще?


ProgRAMmer Dimonych   (2013-08-16 13:48:00) [5]

> [2] i2e   (16.08.13 13:23)

А мусьи там знают толк.


i2e   (2013-08-16 13:23:00) [6]

нарыл на форуме http://rpdn.ru/forum/25/198/

type
 TForm1 = class(TForm)
   ...
   procedure OnTABPress(Var Msg: TWMKey); message CM_DIALOGKEY;

...

procedure TForm1.OnTABPress(Var Msg: TWMKEY);
begin
if (ActiveControl is TEdit) and (Msg.Charcode = VK_TAB) then ShowMessage('Нажата клавиша TAB');
inherited;
end;


Проверил, работает.


[ВладОшин]   (2013-08-16 13:11:00) [7]

KeyPreview


Наверх

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