AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Keine Animation beim SplashScreen

Ein Thema von Popov · begonnen am 24. Apr 2015 · letzter Beitrag vom 25. Apr 2015
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Keine Animation beim SplashScreen

  Alt 24. Apr 2015, 13:33
Ich hab ein Standard SplashScreen den ich seit Jahren nutze (falls nötig). Es ist einfach, erfüllt seinen Zweck, nur mit der Animation in dem SplasScreen klappt es nicht. Das ist nichts was mich bisher störte, und es stört mich immer noch nicht, aber ich frage wieso es nicht funktioniert.

Auf dem SplashScreen Formular habe ich eine einfache TAnimate Animation mit einem Standard Windows Avi. Nur läuft die Animation beim SplashScreen beim Start nicht. Später schon, wenn man das SplashScreen erneut aktiviert.

Ich denke das Problem ist TAnimate, nur wie bekomme ist es zu laufen?

Einen kleinen Trick kenne ich. Ich platziere einen Timer drauf. Es ist egal ob er auf 1 ms, auf 1000 ms oder gar auf 2000000 ms eingestellt ist. Läuft der Timer, läuft auch die Animation. Nur es sollte eigentlich auch ohne Tricks funktionieren.
Angehängte Dateien
Dateityp: zip SplashScreenTest.zip (3,0 KB, 50x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Keine Animation beim SplashScreen

  Alt 24. Apr 2015, 13:49
Es ist eigentlich ganz einfach ...

Alle vorbereitenden Schritte müssen in einem separaten Thread erfolgen, dann funktionieren auch SplashScreens.

Die Vorgehensweise ist dabei auch simpel:
  • SplashScreen-Form erzeugen
  • Initialisierungs-Thread starten
  • SplashScreen-Formular mit ShowModal anzeigen
Wenn der Thread seine Aufgabe erfüllt hat, dann schliesst der den SplashScreen und fertig.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#3

AW: Keine Animation beim SplashScreen

  Alt 24. Apr 2015, 13:57
TAnimate arbeitet vermutlich resourcenschonend, also quasi in soeiner Art im OnIdle-Mode und kommt dort beim Programmstart nicht vorbei. :grueble:
Mein TAnimate hat aber auch noch ein Timers-Property und wenn man den auf True setzt, dann wird mit einen internen Timer gearbeitet und schon geht es.
Delphi-Referenz durchsuchenTAnimate.Timers
SysAnimate32 / ANIMATE_CLASS > MSDN-Library durchsuchenACS_TIMER

PS: TShellResources > http://www.delphipraxis.net/136046-t...ter-vista.html


[edit]
Und ja, wenn du beim Programmstart nicht nur sinnlos Zeit verplemperst und eigentlich nichts machst, dann siehe Sir Rufo.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Apr 2015 um 13:59 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Keine Animation beim SplashScreen

  Alt 24. Apr 2015, 14:11
@Sir Rufo

Ich will nicht behaupten, dass das falsch ist was du schreibst, aber wozu brauche ich dann ein SplasScreen?

Wenn ich zuerst das Fenster anzeige und dann im extra Thread Daten nachlade, dafür habe ich die Sanduhr die mir zeigt, dass in Hintergrund was passiert. Dafür brauche ich keinen SplasScreen.

Das SplasScreen funktioniert bei mir, das ist nicht das Problem, nur die Animation nicht. Die ist auch nicht wichtig, es interessiert mich nur warum. Ich werde doch nicht wegen eine kurzen Verzögerung die ich mit einem Info SplasScreen überbrücke gleich das ganze Programm umschreiben damit ich wegen 0,5 Sekunden Pilepale alles in einen extra Thread auslagere. Sorry, ich baue auch keine Brücke über die Straße, nur weil beim starken Regen sich das Wasser auf der Straße etwas sammelt. Ich bitte dich. Antworten auf Fragen sollten einen Sinn ergeben und nicht dazu dienen zu zeigen was man so alles weiß. Wenn ich eines Tages eine Programm wie PhotoShop schreibe wo ich einiges nachladen muss und es wirklich lange dauert, meinetwegen, dann mache ich es mit deinem Thred. Aber du hast mir gerade auf ein pilepale Problem eine overkill Lösung angeboten.

StringReplace dauert etwas lange, vorbereite es in einem separaten Thread. Trim dauert etwas lange, vorbereite es in einem separaten Thread. Die Zuweisung von 5 zu i dauert etwas lange, vorbereite es in einem separaten Thread. Also lass bitte die Kirche im Dorf.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#5

AW: Keine Animation beim SplashScreen

  Alt 24. Apr 2015, 14:19
Und ja, wenn du beim Programmstart nicht nur sinnlos Zeit verplemperst und eigentlich nichts machst, dann siehe Sir Rufo.
Wenn das Programm dort was macht und keine/kaum Zeit zur Verfügung stellt, welche der Komponente die Möglichkeit gibt sich zu zeichnen (z.B. Messages verarbeiten), dann kann dort auch keine Animation ablaufen.

Lange Operation im Thread = HauptThread/GUIThread hat Zeit was zu machen, während auf das Ende des anderen Threads gewartet wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Keine Animation beim SplashScreen

  Alt 24. Apr 2015, 14:43
Wenn das Programm dort was macht und keine/kaum Zeit zur Verfügung stellt, welche der Komponente die Möglichkeit gibt sich zu zeichnen (z.B. Messages verarbeiten), dann kann dort auch keine Animation ablaufen.
das wird es wohl sein!

@Sir Rufo

Ich will nicht behaupten, dass das falsch ist was du schreibst, aber wozu brauche ich dann ein SplasScreen?

Wenn ich zuerst das Fenster anzeige und dann im extra Thread Daten nachlade, dafür habe ich die Sanduhr die mir zeigt, dass in Hintergrund was passiert. Dafür brauche ich keinen SplasScreen.
Ist denn der/das SplashScreen nichts anderes als eine SuperDuperLuxus-Sanduhr?
Von mir aus auch eine freundliche Begrüßung des Benutzers. Aber mir reicht so etwas:
Code:
   Programm Initialisierung
#1 lade Parameter
#2 prüfe Netzverbindungen
#3 

#99 Initialisierung abgeschlossen
(und trotzdem sind diese Lade-Orgien eine Zumutung!)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Keine Animation beim SplashScreen

  Alt 25. Apr 2015, 11:55
Wenn das Programm dort was macht und keine/kaum Zeit zur Verfügung stellt, welche der Komponente die Möglichkeit gibt ...
Ich hab mir gerade TAnimate etwas angeguckt. Die Komponente wird in einem separatem Thread gestartet. Daran liegt es also nicht.
  Mit Zitat antworten Zitat
Smaraner
(Gast)

n/a Beiträge
 
#8

AW: Keine Animation beim SplashScreen

  Alt 25. Apr 2015, 13:56
Hallo,

ich hatte das Problem auch mal und folgendes hat geholfen: Füge unter uses noch ShellAnimations; ein, dann funktioniert es zu mindestens bei mir.

Oder habe ich das jetzt falsch verstanden und es geht, aber nur verzögert?

Sebastian

Geändert von Smaraner (25. Apr 2015 um 14:00 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Keine Animation beim SplashScreen

  Alt 25. Apr 2015, 13:59
Ich hab mir gerade TAnimate etwas angeguckt. Die Komponente wird in einem separatem Thread gestartet. Daran liegt es also nicht.
Die TAnimate Komponente startet vielleicht in einem eigenen Thread. Aber wenn das Hauptformular durch die ganzen Ladeaktionen keine Zeit bekommt um sich neu zu zeichnen, ja dann funktioniert auch trotz Thread die Animation nicht richtig. Vielleicht würde für eine einfache Lösung ein einfaches Application.ProcessMessages; reichen. Ist aber nur so eine Idee.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#10

AW: Keine Animation beim SplashScreen

  Alt 25. Apr 2015, 14:06
Oder habe ich das jetzt falsch verstanden und es geht, aber nur verzögert?
Beim späteren Aufruf geht es ... nur beim Start nicht.

Also besteht der Verdacht, daß dort jemand mit Delphi 7 in einem XP-System (oder älter) arbeitet, denn seit Vista fehlen im Windows diese Resourcen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 04:25 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