Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Warum verschwindet mein Splash nicht. (https://www.delphipraxis.net/69449-warum-verschwindet-mein-splash-nicht.html)

Aurus 15. Mai 2006 12:41


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:
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;
[edit=SirThornberry]Delphi-Tags gesetzt. Nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]

Robert Marquardt 15. Mai 2006 12:45

Re: Warum verschwindet mein Splash nicht.
 
Delphi-Quellcode:
      SplashF :=Nil;
      SplashF.Free;
Andersrum ist besser.

SirThornberry 15. Mai 2006 12:46

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.

Aurus 15. Mai 2006 12:50

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

Phistev 15. Mai 2006 12:51

Re: Warum verschwindet mein Splash nicht.
 
Der Splash wird auch zweimal erstellt, einmal per Konstruktor und einmal per Application.CreateForm. Streiche
Delphi-Quellcode:
Application.CreateForm(TSplashF, SplashF);
, dann sollt's passen

TBx 15. Mai 2006 12:51

Re: Warum verschwindet mein Splash nicht.
 
Du gebnerierst Dein Splash-Form doppelt:

Delphi-Quellcode:
SplashF := TSplashF.Create(Application);
und

Delphi-Quellcode:
Application.CreateForm(TSplashF, SplashF);
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.

Gruß

onlinekater

[Edit] Hrrrrmmmpf ... da fehlte der rote Kasten .... [/Edit]

himitsu 15. Mai 2006 12:56

Re: Warum verschwindet mein Splash nicht.
 
Oder wie wäre es damit?
Delphi-Quellcode:
...
Application.CreateForm(TSplashF, SplashF);

while not Hauptansicht.blnSplash do
  Application.ProcessMessages;
SplashF.Free;

Screen.Cursor := crDefault;
...
[add]
wenn du dein Spalsh zweimal erzeugst und nur einmal freigibst, dan ist es natrlich noch einmal vorhanden ;)

Aurus 15. Mai 2006 12:59

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 22:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz