Программирование
Главная » FAQ » Клавиатура |
type Button1: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } procedure AppIdle(Sender: TObject; var Done: Boolean); end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnIdle := AppIdle; end; procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean); begin if GetAsyncKeyState( VK_SNAPSHOT ) <> 0 then Form1.Caption := 'PrintScreen нажата !'; Done := True; end; |
type private { Private declarations } procedure CMDialogKey( var msg: TCMDialogKey ); message CM_DIALOGKEY; public { Public declarations } end; procedure TForm1.CMDialogKey(var msg: TCMDialogKey); begin if msg.Charcode <> VK_TAB then inherited; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then Form1.Caption := 'Клавиша Tab нажата!'; end; |
Проверяйте значение переменной key на равенство VK_RIGHT, VK_LEFT, VK_F1 и т.д. на событии KeyDown формы procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RIGHT then Form1.Caption := 'Right'; if Key = VK_F1 then Form1.Caption := 'F1'; end; |
Для обработчика событий OnKeyPress напишите: if (key in ['1','2','3','4','5','6','7','8','9','0']) then key:=#0; |