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

Вниз

Глобальные клавиши Fn для всей формы   Найти похожие ветки 

 
Vladimyr   (2004-07-09 17:07) [0]

Хочется, чтобы в программе совершались некие действия при нажатии клавиш F1, F2 и т.д. независимо от того, какой элемент принял фокус.
В VCL это удавалось сделать обработкой Form1.OnKeyDown (OnKeyPress здесь не подходит, так как не реагирует на функциональные клавиши).
Правда, это работало только тогда, когда в основной VCL-форме установлено свойство KeyPreview := true.
Видимо, в KOL-форме тоже есть что-то подобное, так как Form1.OnKeyDown не срабатывает ни на одну клавишу.
Подозреваю, что ответ простой, но найти его в форуме я не смог :(


 
Gandalf ©   (2004-07-09 23:16) [1]

Про это не раз говорили и тут и даже в FAQ упоминалось вскольз.


function TForm1.KOLApplet1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
var C : Char;
begin
 Result := False;
 case Msg.message of
   WM_KEYDOWN, WM_SYSKEYDOWN:
     if assigned( Form.OnKeyDown ) then
        Form.OnKeyDown( Form, Msg.wParam, GetShiftState );
   WM_KEYUP, WM_SYSKEYUP:
     if assigned( Form.OnKeyUp ) then
        Form.OnKeyUp( Form, Msg.wParam, GetShiftState );
   WM_CHAR, WM_SYSCHAR:
     if assigned( Form.OnChar ) then
     begin
        C := Char( Msg.wParam );
        Form.OnChar( Form, C, GetShiftState );
        Msg.wParam := Integer( C );
     end;
 end;
end;


 
Vladimyr   (2004-07-10 00:47) [2]

Спасибо за ответ, это работает!
Но тогда как же некоторые контролы всё же реагируют на клавиатуру и мышь без такого обработчика?!..


 
Gandalf ©   (2004-07-12 18:37) [3]

Не понял вопроса


 
Vladimyr ©   (2004-07-12 20:24) [4]

Разобрался, спасибо :)



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

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

Наверх




Память: 0.47 MB
Время: 0.054 c
14-1104943716
Piter
2005-01-05 19:48
2005.02.06
Где бы взять драйвер, который возвращал бы информацию о процессах


1-1106606303
HF-Trade
2005-01-25 01:38
2005.02.06
OpenDialog может осуществлять выбор папки, а не файла?


9-1098938936
mudazvon
2004-10-28 08:48
2005.02.06
Как работает этот PixelCheck?


1-1106224246
Bobby Digital
2005-01-20 15:30
2005.02.06
Polygon


1-1106480936
Mirror
2005-01-23 14:48
2005.02.06
Строка под курсором мышки в RichEdit