![]() |
Warum verschwindet mein Splash nicht.
Hallo
Ich habe in mein Programm ein Splash eingebunden. Der Splash verschwindet wenn eine gewisse Zeit abgelaufen ist oder wenn ich eine Taste drücke oder wenn ich mit der Maus klicken. Dann wird eine Boolean Variable (blnSplash) True gesetzt. Der Splash verschwindet zwar aber er ist im Taskmanager immer noch zu sehen. Was mache ich falsch? Gruss Aurus
Delphi-Quellcode:
[edit=SirThornberry]Delphi-Tags gesetzt. Nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
begin
SplashF := TSplashF.Create(Application); Screen.Cursor := crHourGlass; SplashF.Show; SplashF.Refresh; Application.Initialize; Application.Title := 'Demo Programm '; Application.CreateForm(THauptansicht, Hauptansicht); Application.CreateForm(TEinstAll, EinstAll); Application.CreateForm(TSplashF, SplashF); while SplashF <> nil do begin Application.ProcessMessages; if (SplashF <> nil) AND (Hauptansicht.blnSplash = True) then begin SplashF :=Nil; SplashF.Free; end; end; Screen.Cursor := crDefault; Application.Run; end; |
Re: Warum verschwindet mein Splash nicht.
Delphi-Quellcode:
Andersrum ist besser.
SplashF :=Nil;
SplashF.Free; |
Re: Warum verschwindet mein Splash nicht.
andersrum ist nicht nur besser sondern die inzig funktionelle Variante. Denn ".Free" auf nil bewirkt nichts. Das Object bleibt weiter vorhanden und wird nie freigegeben. Was auch erklärt warum der splash noch da ist.
|
Re: Warum verschwindet mein Splash nicht.
Hallo zusammen
Leider geht es auch nicht wenn ich wenn ich zuerste Free und dann nil nehme. Der Splash verschwindet zwar aber nicht im Taskmanager. SplashF.Free; SplashF :=Nil; Gruss Aurus |
Re: Warum verschwindet mein Splash nicht.
Der Splash wird auch zweimal erstellt, einmal per Konstruktor und einmal per Application.CreateForm. Streiche
Delphi-Quellcode:
, dann sollt's passen
Application.CreateForm(TSplashF, SplashF);
|
Re: Warum verschwindet mein Splash nicht.
Du gebnerierst Dein Splash-Form doppelt:
Delphi-Quellcode:
und
SplashF := TSplashF.Create(Application);
Delphi-Quellcode:
Die zuerst ghenerierte Form benutzt DU nie wieder. Du Speicherst den Verweis auf diese Form in SplashF und überschreibst diese Referenz bei der zweiten Generierung wieder.
Application.CreateForm(TSplashF, SplashF);
Gruß onlinekater [Edit] Hrrrrmmmpf ... da fehlte der rote Kasten .... [/Edit] |
Re: Warum verschwindet mein Splash nicht.
Oder wie wäre es damit?
Delphi-Quellcode:
[add]
...
Application.CreateForm(TSplashF, SplashF); while not Hauptansicht.blnSplash do Application.ProcessMessages; SplashF.Free; Screen.Cursor := crDefault; ... wenn du dein Spalsh zweimal erzeugst und nur einmal freigibst, dan ist es natrlich noch einmal vorhanden ;) |
Re: Warum verschwindet mein Splash nicht.
Danke an alle.
Der Fehler war wirklich dass ich den Splash doppelt erstellt habe. Gruss Aurus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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