Difference between revisions of "key down/de"

From Lazarus wiki
Jump to navigationJump to search
(→‎Eine Taste abfragen: Fix für Cocoa)
Line 16: Line 16:
 
     (Key = VK_UP) then
 
     (Key = VK_UP) then
 
     ShowMessage('Pfeiltaste gedrückt');
 
     ShowMessage('Pfeiltaste gedrückt');
 +
  Key := 0; // Notwendig, um in manchen Widgetsets wie Cocoa die Verarbeitung in weiteren UI-Elementen zu verhindern
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>

Revision as of 11:08, 5 February 2019

Deutsch (de) English (en)

Das Ereignis OnKeyDown eines Objektes erlaubt dem Programmierer festzustellen, welche Taste der Anwender gedrückt hat. Damit kann das Programm auf den Tastendruck des Anwenders gezielt reagieren.

Eine Taste abfragen

uses
  LCLType, Dialogs, ...;
  
  ...
  
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_DOWN) or
     (Key = VK_UP) then
    ShowMessage('Pfeiltaste gedrückt');
  Key := 0; // Notwendig, um in manchen Widgetsets wie Cocoa die Verarbeitung in weiteren UI-Elementen zu verhindern
end;

Zwei Tastencodes abfragen

Einmal wird die Tastaturcode in der Variablen Key und einmal wird der Tastaturcode in der Variablen Shift abgefragt. Die Variable Shift übergibt nur den Tastaturcode der in der Aufzählung TShiftState definiert ist (z.B. ssAlt, ssCtrl, usw.).

uses
  LCLType, Dialogs, ...;
  
  ...
  
procedure TForm1.txtEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   if ssAlt in Shift then
    if Key = vk_F2 then
     ShowMessage('Alt F2 wurde gedrückt.')
end;