wie bekomme ich das hin, dass wenn mein programm gestartet wird, dass wärend es gelanden wird mein splash-screen kommt und sich dann nach fertigem laden schließt?
Announcement
Collapse
No announcement yet.
laden
Collapse
X
-
2 Programme schreiben
Das 1. zeigt den Screen und lädt dann das 2.
Es geht nun mal nicht anders! Erst muß das Programm geladen werden. Beim laden werden alle Speicheradressen angepasst. Mit "Zwischendurch was andres machen" ist da schwer realisierbar.
Etwas anderes ist es, wenn das Programm schon vollständig geladen ist und noch eine Weile brauch um zu starten (DB-Zugriffe o.a.). Dann kann man natürlich vorher einen Screen anzeigen.
Andere Programme starten
Winexec
Shellexecute
ChristiaChristian
-
Wie würde ich das machen wenn es so wäre || Etwas anderes ist es, wenn das Programm schon vollständig geladen ist und noch eine Weile brauch um zu starten (DB-Zugriffe o.a.). Dann kann man natürlich vorher einen Screen anzeigen. || <br><br>
Dank
Comment
-
<pre>
Hallo Maik,
für Splashscreens gibt es mehrere Ansätze:
Hier einer davon.
anwendung.cpp
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
...
try
{
Application->Initialize();
SplashScreen = new TSplashScreen(Application);
SplashScreen->Show();
SplashScreen->Update();
...
splashscreen.cpp
Properties BorderStyle = bsNone, Position = poScreenCenter, FormStyle = fsStayOnTop
In das Formular legst du ein Image, das mit alClient ausgerichtet wird und einen
Timer den du auf 1000 einstells.
void __fastcall TSplashScreen::SplashTimerTimer(TObject *Sender)
{
if(MainWindow->Visible) {
SplashTimer->Enabled = false;
Hide();
Free();
}
}
Das Formular darf natürlich nicht in der Liste 'Automatisch erzeugen' des Projektes erscheinen.
Wenn deine 'zeitaufwendigen' Sachen, wie das Öffnen der Datenbank etc. in der MainWindow::OnFormShow
Funktion erledigt werden, wird der Splashscreen als erstes geöffnet und bleibt über den gesamten Zeitraum
offen, bis das Hauptfenster in seiner ganzen Pracht erscheint.
Viel Spass,
Heiko
</pre>
Comment
Comment