// 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;
 



Zugriffe seit 6.9.2001 auf Delphi-Ecke