44 Stimmen

Delphi: Programm mit ESC Taste beenden

Tipp von Delphianer | Letztes Update am 28.06.2021 | Erstellt am 09.07.2012

In diesem Tipp zeige ich euch, wie ihr euer Delphi- oder Lazarus-Programm mit einem einfachen Druck auf die Escape-Taste (ESC) auf euer Tastatur schließen könnt.

In das OnCreate der Form schreibt ihr folgenden Code oder ihr setzt alternativ einfach KeyPreview im Objekt-Inspektor auf true:

procedure TForm1.FormCreate(Sender: TObject);
begin
   KeyPreview := true;
end;

In das OnKeyPress schreibt ihr den folgenden Code (der Code #27 steht dabei für die ESC-Taste):

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if Key = #27 then Close;
end;

Man könnte meinen, dass der untere Code-Schnipsel ausreichend ist, dem ist aber nicht so. Verwendet man nur den unteren Code im OnKeyPress, wird das Programm nur geschlossen, wenn das Fenster den Fokus hat. Hat ein anderes Element (zum Beispiel ein Memo) den Fokus, erhält nur das Memo die Benachrichtigung, dass die entsprechende Taste gedrückt wurde und der Tastendruck kommt bei der Form nicht an.

Wenn wir aber KeyPreview auf true setzen, bekommt immer die Form eine Benachrichtigung, wenn eine Taste gedrückt wurde, bevor dies an das aktive Element weitergegeben wird. Und nur so können wir den Tastenklick auch verarbeiten.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

Delphi: Systemweiter HotKey

Tutorial | 3 Kommentare

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.