Wie kann ich bei Betätigen der Enter-Taste den Fokus automatisch an das nächste Feld (z.B. TEdit) übergeben?


Um nach Betätigen der Enter-Taste zum nächsten Control auf einem Formular zu wechseln, muß man zuerst die "KeyPreview"-Eigenschaft des Formulars auf "true" setzen. Anschließend kann man in der OnKeyPress-Methode des Formulars auf die Enter-Taste reagieren:

procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then begin   { #13 = Enter }
    Key := #0; { sonst piept es }
    PostMessage(Handle, WM_NextDlgCtl, 0, 0);
  end;
end;

Bemerkung: Das funktioniert natürlich nur mit zwei oder mehr Komponenten und leider nicht innerhalb einer Komponente, z.B. einem DBGrid.

Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet


siehe auch:


Delphi FAQ