Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Bug? Delphi Anwendung automatisch in den Hintergrund

  Alt 12. Jan 2021, 10:08
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;
  Mit Zitat antworten Zitat