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

Вниз

Определить нажатие кнопки   Найти похожие ветки 

 
i2e   (2013-08-16 12:38) [0]

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


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

KeyPreview


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

нарыл на форуме 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;


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


 
ProgRAMmer Dimonych ©   (2013-08-16 13:48) [3]

> [2] i2e   (16.08.13 13:23)

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


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

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


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

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


 
stas ©   (2013-08-16 17:24) [6]

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


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

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



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

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

Наверх




Память: 0.47 MB
Время: 0.005 c
1-1325512087
S-C-L
2012-01-02 17:48
2014.06.08
Баг при работе с областью памяти


1-1324959078
klimov
2011-12-27 08:11
2014.06.08
ZLIB (с мусором в конце) в XE/XE2 - косячит?


2-1376652965
IPmaster
2013-08-16 15:36
2014.06.08
Эмулятор ip адреса


2-1376633430
mfender
2013-08-16 10:10
2014.06.08
Странности SetLength


2-1374235840
Dymok
2013-07-19 16:10
2014.06.08
Как обмануть таймер простоя