AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt
Thema durchsuchen
Ansicht
Themen-Optionen

SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

Ein Thema von devidespe · begonnen am 27. Okt 2014 · letzter Beitrag vom 28. Okt 2014
Antwort Antwort
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 19:04
Hallo,

ich erzeuge einen SplashScreen direkt am Anfang der DPR-Datei, um über den Fortschritt der Startinitialisierung zu informieren.

Wenn ich den SplashScreen mit Free kurz vor Application.CreateForm schließe, verschwindet dessen Eintrag aus der Taskleiste und der reguläre Eintrag des Programms wird erzeugt. Soweit alles gut.

Nun habe ich aber in der FormCreate Prozedur des Hauptformulars auch noch einige Dinge zu tun, weswegen ich das Schließen des SplashScreens am Ende von FormCreate durchführen wollte, den SplashScreen quasi von der DPR-Datei ins Mainform übernehmen. Das klappt auch erstmal, allerdings bleibt ein leerer Taskleisten-Eintrag zurück, der auch nicht weggeht. Zusätzlich zu diesem kommt der reguläre Eintrag des Mainforms hinzu.

Woran kann das liegen, bzw. wie kann ich einen SplashScreen im DPR erzeugen und am Ende des FormCreate schließen, ohne doppelte Taskleisteneinträge zu generieren?
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 19:17
Das 1. Formular dass mit Application.CreateForm erzeugt wird wird automatisch zum MainForm.
Man kann das über das readonly Property Application.Mainform auslesen.
Daher darf man das Splash-Formular nicht über Application.CreateForm() erzeugen sondern muss
Splashform := TSplashForm.Create(nil); schreiben.
fork me on Github
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 19:33
Naja das mache ich ja. Im DPR wird es mit :

SplashScreenFormVar:=TSplashScreenForm.Create(nil); erzeugt, wobei SplashScreenFormVar eine Variable in der SplashUnit.pas ist und auf

var SplashScreenFormVar : TSplashScreenForm; verweist.

Dann wird das Formular mit

SplashScreenFormVar.Show; im DPR erzeugt.

In FormCreate des Mainforms greife ich dann wieder auf diese Varaible zu und versuche es zu schließen:

if Assigned(SplashScreenFormVar) then SplashScreenFormVar.Free; Das funktioniert problemlos, wenn ich die gleiche SplashScreen-Erzeugung in FormCreate verwende, ich benötige aber einen SplashScreen im DPR vor der Erzeugung der Mainform.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 19:42
Ich habe es nie ganz durchschaut, deshalb nur als spontane Idee: Hast du mal an der MainFormOnTaskBar -Variable herumgespielt?
http://docwiki.embarcadero.com/Libra...nFormOnTaskBar
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 23:04
Ich hatte diesen Fehler auch einige male.
Einmal lag es daran das ich Application.Initialize vor Splash.Show angegeben hatte statt danach und einmal hat es geholfen vor Splash.free das Fenster mit Splash.hide zu verbergen. Warum letzteres half habe ich nicht ganz verstanden, war aber froh drüber *g*.
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#6

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 28. Okt 2014, 08:52
Wieso SplashScreenFormVar.Free und nicht SplashScreenFormVar.Close?
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 28. Okt 2014, 11:04
Hallo,

beides hilft leider nicht, Application.Initialize wird nach dem SplashScreen ausgeführt, und auch ein Hide vor dem Free/Close hilft nicht.

Was aber hilft, ist das Setzen von Application.MainFormOnTaskbar auf False. Dann verschwindet das Fenster wieder.

In der Hilfe steht aber, dass diese Variable auf True gesetzt sein muss, um die Aero-Effekte ab Windows Vista verwenden zu können. Aber trotzdem funktioniert etwa Flip 3D, hier unter Windows 7.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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