33 Stimmen

Delphi: Funktionstasten wie F1, F2, F3 und F4 funktionieren nicht im FormKeyDown Event

Frage von Gast | Letztes Update am 01.07.2021 | Erstellt am 16.04.2012

In dem FormKeyDown Event möchte ich auf die Funktionstasten (F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11 und F12) reagieren (HotKey) und eine entsprechende Aktion zuweisen. Dafür benutze ich folgenden Code:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F1 then Funktion1();
  if Key = VK_F2 then Funktion2();
  if Key = VK_F3 then Funktion3();
  //usw
end;

Problem: Aus irgendeinem Grund funktioniert es nicht. Offenbar wird beim Drücken von F1 nicht einmal das FormKeyDown Event der Form aufgerufen. Was mache ich falsch?! Ich habe den Code so oft überprüft und mit allen anderen Virtual Keys wie VK_SPACE und so funktioniert es einwandfrei, nur mit den Funktionstasten nicht!

AntwortenPositivNegativDatumStimmen
7Beste Antwort7 Stimmen

Dein Code kann genauso bleiben wie er ist, probiere einfach mal das Programm außerhalb der IDE zu starten.

Wenn du das Programm innerhalb von Delphi startest, sind die Funktionstasten von Delphi belegt, um den Programmablauf und das Debugging zu steuern, deswegen kann man im Programm nicht über das OnKeyDown Event auf die Tasten zugreifen.

Wenn du das Programm aber eigenständig außerhalb von Delphi startest, sollte es gehen.
Letztes Update am 01.07.2021 | Erstellt am 04.05.2012

AntwortenPositiv Negativ
00 Stimmen

Ich hatte das gleiche Problem! Und das ist die Lösung! Vielen vielen Dank!

Ohne deinen Tipp hätte ich es nie hinbekommen!
29.06.2021 um 23:17

Positiv Negativ
Antworten
00 Stimmen

Mit Delphi Sydney ist das keine Opiton: F1 wird auch „außerhalb“ ignoriert.
30.01.2021 um 19:46

AntwortenPositiv Negativ
11 Stimme

Dann liegt es vermutlich an etwas anderem.

Hast du zum Beispiel vielleicht vergessen KeyPreview auf true zu stellen?
31.01.2021 um 20:12

Positiv Negativ
Antworten
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.