Eine kleine Änderung der Demo, damit der Fokus auch wieder zurück springt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject) ;
var
ctrl: TWinControl;
begin
if Previous
is TWinControl
then begin
// Control merken, da die eigentliche Routine den Focus wieder verändern könnte
ctrl := Previous;
// Hier die 'Button-Click' Routine ausführen (Könnte den Fokus nochmals ändern)
ShowMessage(Format('
%s hatte den Focus', [ctrl.
Name]));
// Und zum Schluss den Fokus zurücksetzen
PostMessage(
Handle, WM_NEXTDLGCTL, ctrl.Handle, -1);
end;
end;