![]() |
MainFormOnTaskbar verursacht bizarres Verhalten
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab hier ein Projekt das sich wirkich sehr sehr seltsam verhält.
Hier mal ein Dummyprojekt (auch im Anhang):
Delphi-Quellcode:
dpr:
begin Application.Initialize; Application.MainFormOnTaskbar := True; frmSplash := TfrmSplash.Create(nil); frmSplash.Show; frmSplash.Refresh; Application.CreateForm(TForm1, Form1); Application.Run; end. MainForm: procedure TForm1.FormShow(Sender: TObject); begin ShowMessage('Test!'); end; Splash-Form: procedure TfrmSplash.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmSplash.Timer1Timer(Sender: TObject); begin Close; end; Wenn man die Anwendung startet ist erstmal nur das ShowMessage-Fenster aus dem MainForm.OnShow zu sehen. Wenn sich nun das Splash-Formular selbst freigibt, dann wird auch der Message-Dialog inklusive Taskbar-Eintrag unsichbar und man hat eine unerreichbare Programmleiche im Taskmanager liegen. Any ideas woher das kommt? Ich glaub ich hab einen Workaround gefunden (siehe unten), aber ich würde gern das Problem verstehen. Hier der Workaround:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin PostMessage(self.handle, WM_AfterShow, 0,0); // Dadurch kommt das ShowMessage erst nachdem das MainForm sichtbar ist end; procedure TForm1.WMAfterShow(var Message: TWMChar); begin ShowMessage('Test!'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz