Einzelnen Beitrag anzeigen

Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#1

Ich krieg mein Fenster nicht automatisch aktiv.

  Alt 25. Feb 2021, 17:19
Hi zusammen,

ich hoffe, hier reicht ein kleine Hilfe.

Folgende Situation
VCL 64bit Windows
Das Delphi Main Formular soll (erstnmal) ohne Funktion im Hintergrund sein.
Ich möchte ein weiteres Formular sofort nach dem Start öffnen und AKTIV haben.
Ich sehe das, weil die FensterTitelBar im inaktiven Zustand eine andere Farbe hat und sich leider einige Komponenten erst bei Aktivierung korrekt zeichnen.

DPR-Quelltext:

Erzeugen, Anzeigen Splash
Create Delphi-Mainform (frmDesktop)

Delphi-Quellcode:
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  //Application.MainFormOnTaskbar := False;
  frmSplash := TfrmSplash.Create(nil);
  frmSplash.Show;
  Application.CreateForm(TfrmDesktop, frmDesktop);
  Application.Run;
Dann in der frmDesktop:

Da ich den Splashscreen solange stehen haben möchte, bis wirklich alles fertig ist, habe ich die das ApplicationIdleEvent genutzt.
Dort erzeuge ich dann die eigentlichen Mainform und möchte sie anzeigen/aktivieren

Delphi-Quellcode:
procedure TfrmDesktop.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
begin
  if frmSplash <> nil then begin
    SystemInit;
    FfrmMain := TfrmMain.Create( self);
    FfrmMain.Init;
    FfrmMain.Show;
    FfrmMain.SetFocus;
    FfrmMain.btnHomeClick(nil);
    FreeAndNil( frmSplash);
// FfrmMain.btnHomeClick(nil);
// SetForegroundWindow( FfrmMain.Handle);
// FfrmMain.SetFocus;
  end;
Ihr seht, das ich hier schon einiges ausprobiert habe.

Das Fenster erscheint (im Vollbildmodus), ist aber nicht aktiv. Erst wenn ich dann manuell mit der Maus klicke, wird das Fenster aktiviert. (Sichtbar durch Anpassung der FensterTitelFarbe)

Was mache ich falsch? Wie geht es besser?

Gruß
Thomas
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat