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 DevidEspenschied · begonnen am 27. Okt 2014 · letzter Beitrag vom 28. Okt 2014
Antwort Antwort
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#1

SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 20: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
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. 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, 20: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
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#3

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 20: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
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 27. Okt 2014, 20: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 28. Okt 2014, 00: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, 09:52
Wieso SplashScreenFormVar.Free und nicht SplashScreenFormVar.Close?
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#7

AW: SplashScreen wird geschlossen, aber Taskleisteneintrag bleibt

  Alt 28. Okt 2014, 12: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
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  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 02:51 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