![]() |
animierter Splashscreen mit mehreren Timern für Animation
nabend freunde!
ich verwende in meinem programm beim start einen splash-screen, welchen ich ein bisschen animiert habe. dafür brauchte ich mehrere timer. leider musste ich feststellen, dass wenn ich diesen splash einbaue, die ontimer-ereignisse nicht anspringen. ich hab gehört, dass dies erst ab application.run möglich sein soll? nagut. dann bräuchte ich eine alternative variante, den splash zu realisieren. ich danke euch schon mal, für eure hilfe! viva los tioz! hier der code:
Delphi-Quellcode:
program Project1;
uses Forms, SysUtils, Unit1 in 'Unit1.pas' {Form1}, Siegel1 in 'Siegel\Siegel1.pas' {Siegel}, Splash1 in 'Splash\Splash1.pas' {Form23z}; {$R *.res} begin // Produktsiegel (dieser Splash ist animiert) Application.Title := 'Produktsiegel'; Siegel := TSiegel.Create(Application); Siegel.Show; Application.Initialize; Siegel.Update; Sleep(1500); Siegel.Hide; // Splash Screen (und der Bursche hier nicht) (also einfach nur ein Bild) Application.Title := 'Splash Screen'; Form23z := TForm23z.Create(Application); Form23z.Show; Application.Initialize; Form23z.Update; Sleep(1500); Form23z.Hide; // Hauptprogramm Application.CreateForm(TForm1, Form1); Siegel.Free; Form23z.Free; Application.Title := 'Fleissnerin'' with Fleissnerer'; Application.Run; end. PAX |
Re: animierter Splashscreen mit mehreren Timern für Animatio
Hi,
ich weiß nicht wirklich wie deine Animationen ablaufen, aber dir ist sicherlich klar, dass ein sleep den gesamten Prozess schlafen legt? Das heißt natürlich auch, dass Timer (die gehören imho zum Hauptthread) nie ein Ereignis auslösen können. Wenn du auf etwas bestimmtes warten willst, solltest du dafür lieber etwas wie Delay nehmen (gibt hier in der DP irgendwo eine hübsche Implementierung). Die andere Sache ist, warum die Projektdatei editieren? Du kannst dir auch einfach ein eigenes Formular schaffen, dass für die Verwaltung zuständig ist. Dieses kann die beiden Splashscreens nacheinander öffnen und dann ein drittes, vierstes, x-tes Fenster. Kannst natürlich auch das normale Hauptformular solange unsichtbar machen, wie du andere Fenster anzeigst. Gruß Der Unwissende |
Re: animierter Splashscreen mit mehreren Timern für Animatio
also lags am sleep? ich würde diese gesamte splashscreensache nur in die eigentliche applikation einbauen (oder noch ein extraformular), wenns garnicht mehr anders geht.
ich wollte nun eigentlich testen, ob es am sleep-befehl lag und habe die delayprozedur geschrieben (in der projektdatei) und sleep ersetzt. leider war ein test nicht möglich, da der compiler anscheinend, gettickcount angeblich noch nie gesehen hat (in der formular-unit kennt ers wieder). was isn nun los? fehlt die deklaration einer unit? welche? :( |
Re: animierter Splashscreen mit mehreren Timern für Animatio
In der Uses-Klausel die Unit Windows mit aufnehmen.
Delphi-Quellcode:
program Project1;
uses Forms, Windows, // <---<<< Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin //... Application.Initialize; //... |
Re: animierter Splashscreen mit mehreren Timern für Animatio
dankeschön! :)
eine frage noch: da ich im animierten splash timer benutze, kann es sein, dass auf älteren rechnern die zeiten nicht ganz stimmen und das delay bei ihnen zu kurz angesetzt ist? weil, während das delay läuft, spielen sich gerade auch die animationen ab. ich habe angst, dass es passieren kann, dass die zeiten mal, aus welchem grund auch immer (existiert einer?), nicht ganz passen könnten... |
Re: animierter Splashscreen mit mehreren Timern für Animatio
das delay sorgt doch nur dafür das windowsbotschaften verarbeitet werden. Die Timerevents sollten also bei ordentlicher delay-implementierung auch überall gleich aufgerufen werden.
|
Re: animierter Splashscreen mit mehreren Timern für Animatio
is praktisch also ohne bedenken einzusetzen in dieser form? denn, die zeit im delay is so angesetzt, dass zum einen die ganzen timer ablaufen können (starten zu unterschiedlichen zeiten, hören zu unterschiedlichen zeiten auf, laufen unterschiedlich lang) und zum anderen, nach dem alle timer fertig sind, der splash noch eine weile verharrt. ?
und was is dieses GetTickCount eigentlich? es startet ja nciht bei 0... wie generiert er seinen wert? danke für eure hilfe! |
Re: animierter Splashscreen mit mehreren Timern für Animatio
Zitat:
"The GetTickCount function retrieves the number of milliseconds that have elapsed since Windows was started." |
Re: animierter Splashscreen mit mehreren Timern für Animatio
wie weit weicht denn die timer-komponente ab? und wann tut sie das?
und noch was: Zitat:
|
Re: animierter Splashscreen mit mehreren Timern für Animatio
kennt keiner eine antwort, oder mögt ihr mich einfach nicht, weil ich so dumm bin :-D ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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