Also ich habe das zwar noch nie bei Buttons angewendet, aber bei Edits springe ich so zum nächsten Feld:
Delphi-Quellcode:
function NextDlgCtl(AForm: TForm; var Key: Char): Boolean;
begin
Result := Key = Chr(VK_RETURN);
if Result then
begin
AForm.Perform(WM_NEXTDLGCTL, 0, 0);
Key := #0;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
NextDlgCtl(Self, Key);
end;
Mit Edits kein Problem, bei Buttons klappt das nicht so ohne weiteres. Allgemein funktioniert das direkt mit Leertaste, wie (ich glaube) DeddyH es geschrieben hat. Das kann man leicht lösen mit einer Eigenschaft von TButton:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Default := True;
end;
//EDIT:
Ups, kleiner Fehler, bzw. Korrektur. Default := True führt ein OnClick beim Button aus, d. h. die Funktion wird nicht über OnKeyPress aufgerufen, sondern über OnClick.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Key: Char;
begin
Key := #13;
NextDlgCtl(Self, Key);
end;
Bei Edit Feldern kommt die Funktion in OnKeyPress rein. Bein Button, falls Default := True ist, in OnClick.
//Edit Ende
Es gibt übrigens auch
FindNextControl
, mit dem man den nächsten Control in der Reihe finden kann. Dann einfach dem den Fokus geben. Nur falls das oben nicht klappt.