35 Stimmen

Delphi/Lazarus: Enter-Taste in Edit-Feld

Frage von Gast | Letztes Update am 03.01.2024 | Erstellt am 13.03.2015

Ich möchte gerne eine bestimmte Aktion automatisch ausführen, wenn in einem bestimmten TEdit-Feld die Enter- beziehungsweise Return-Taste gedrückt wurde.

Also zum Beispiel der automatische Start einer Suche nach Eingabe eines Suchbegriffes oder das Springen in das nächste Eingabefeld oder das automatische Drücken eines Buttons neben dem Feld.

Wie kann ich das realisieren?

AntwortenPositivNegativDatumStimmen
7Beste Antwort13 Stimmen

Du kannst einfach im OnKeyPress des Edit-Feldes auf die Enter-Taste reagieren.

Enter hat den Key-Code #13, die Abfrage könnte also zum Beispiel so aussehen:

procedure TForm1.Edit1KeyPress(Sender: TObject; 
  var Key: Char);
begin
  if Key = #13 then begin
    Button1.Click;  // zum Beispiel: Button-Click simulieren
    Edit2.SetFocus; // oder: zum nächsten Edit springen
    // ... oder etwas anderes
    Key := #0;
  end;
end; 

Hier rufen wir einfach die Prozedur Button1Click auf, so dass der darin enthaltene Code beim Drücken der Enter-Taste ausgeführt wird und springen zum nächsten Edit-Feld. Natürlich kannst du auch jeden anderen Code an dieser Stelle aufrufen oder eintragen.

Wichtig ist es anschließend den Key auf #0 zu setzen. So verhinderest du, dass noch eine weitere Verarbeitung im Edit stattfindet.
Letztes Update am 03.01.2024 | Erstellt am 16.03.2015

AntwortenPositiv Negativ
15 Stimmen

Wenn bei Drücken der Enter-Taste ein Button geklickt werden soll, kannst du auch die Eigenschaft "Default" des Buttons auf "true" setzen. Damit wird automatisch der Button geklickt, wenn Enter gedrückt wird.

Dasselbe gilt es auch für die ESC-Taste, in diesem Fall muss die Eigenschaft "Cancel" auf "true" gesetzt werden.
18.03.2015 um 21:54

AntwortenPositiv Negativ
00 Stimmen

Besser bei kleineren Programmen oder für Dialogfenster!

Die obere Antwort ist für längere Programme besser geeignet.
25.01.2018 um 08:45

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.