// Die
Funktion überprüft, ob eine bestimmte Taste gerade gedrückt ist.
//
Variante 1
// Getestet mit D4 unter
XP
function IsKeyDown(Key: Integer): Boolean;
begin
Result := HiWord(DWord(GetKeyState(Key))) <> 0;
end;
// Beispielaufrufe:
// --- Überprüfen, ob die Taste "A" gerade gedrückt ist ---
procedure TForm1.Button2Click(Sender: TObject);
begin
if iskeydown(ord('A')) then showmessage('A');
end;
// --- STRG, ALT und SHIFT überwachen ---
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 50;
end;
function plus(s: string): string;
begin
if s <> '' then result := s + ' + '
else result := s;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := '';
if iskeydown(VK_CONTROL) then Label1.Caption := 'STRG';
if iskeydown(VK_MENU) then Label1.Caption := plus(Label1.Caption) + 'ALT';
if iskeydown(VK_SHIFT) then Label1.Caption := plus(Label1.Caption) + 'SHIFT';
end;
//--------------------------------------------------------------
//
Variante 2
// Getestet mit D2010 unter W7
function IsKeyDown(Key: Word): boolean;
var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState);
result := (KeyState[Key] <> 0)
end;
|