Immer (!) ein in sich abgeschlossenes Beispielprojekt anhängen, dann wird dir eher geholfen und es erübrigt sich das Glaskugelraten.
Also so, wie TigerLilly es richtig anmerkte. Das spart dir ja auch selber Zeit, wenn du einfach etwas zippst, anstatt die Nachbau-Anleitung runter zu tippen.
Also ein doppelter Hauptgewinn für alle!
Ansonsten hast du die wahrscheinliche Ursache von jaenicke gut ergründet bekommen.
Ob es sich um einen wirklichen Bug handelt, sei mal dahingestellt, weil der hier im Beispiel skizzierte Anwendungsfall ja sinnlos ist bzw. nicht üblich.
Denn wenn man bspw. anstatt
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
TForm3.Create(self);
end;
eher sowas schreibt
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
Form3: TForm3;
begin
Form3 := TForm3.Create(nil);
try
Form3.ShowModal;
finally
Form3.Free;
end;
end;
Dann funktioniert das Focus setzen auf die Mainform ja wieder.
Ansonsten kannst du dich derart behelfen, indem du folgendes machst:
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
Application.OnDeactivate := AppDeactivate;
end;
procedure TForm2.AppDeactivate(Sender: TObject); // beliebiger selbstgewählter Name
begin
Self.SetFocus;
end;