Вторник, 11.12.2018, 19:53
Приветствую Вас Гость
Меню сайта


Копилка для дальнейшего развития ресурса.
 
Форма входа
Интересное
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Программирование на Delphi.

Программирование

Главная » FAQ » Клавиатура

type

  TForm1 = class(TForm)
  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

  TForm1 = class(TForm)
  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;