AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Tutorial: Splash Screens
Tutorial durchsuchen
Ansicht
Themen-Optionen

Tutorial: Splash Screens

Ein Tutorial von sakura · begonnen am 9. Sep 2003 · letzter Beitrag vom 31. Jan 2009
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    
Benutzerbild von sakura
sakura
Registriert seit: 10. Jun 2002
Hi DPler,

immer wieder kommt die Frage danach, wie Splash Screens bzw. "Startbildschirmen" gemacht werden können. Also, die Implementierung ist einfacher, als viele es glauben wollen.

Folgend meine zwei beliebtesten Methoden, Splash Screens zu implementieren.

Dabei ist die grundlegende Vorgehensweise immer identisch. Zum Üben einfach mal mitmachen und dann die präferierte Methode annehmen

Let's roll!

Delphi starten und eine neue Anwendung erstellen. Die Anwendung und das Hauptformular an gewünschter Stelle auf der Festplatte speichern. Anschließend im Objekt Inspektor dem Hauptformular einen beliebigen Namen geben. In den Bespielen heißt dieses frmMain. Damit wir bei unserer Super-Beispiel-Anwendung auch mal einen "vernünftigen" Grund für einen Splash-Screen erzwingen, folgenden Code in das OnCreate-Ereignis einfügen.

Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  Sleep(1500);
end;
Dann noch einen Button aufs Form werfen und folgenden Code in des OnClick-Ereignis einfügen.

Delphi-Quellcode:
procedure TfrmMain.btnBoahClick(Sender: TObject);
begin
  Close;
end;
Soweit die Vorbereitung auf Seiten des Hauptformulars. Jetzt gehts an den Splash Screen. Dazu erstellen wir ein neues Formular und speichern auch dieses. Als Namen im Objekt Inspektor bitte frmSplash eingeben (damit die Beispiele funktionieren). Ansonsten ist der natürlich auch frei wählbar.

Jetzt das Splash Formular nach belieben "stylen" und weiter gehts. Im folgenden Beispiel ist einfach ein hübsches Bildchen zu sehen

Weiter gehts. Folgend zu den beiden Standard-Methoden.
  • Der nächste Abschnitt erklärt, wie man das Splash-Form dazu bringt mind. 3 Sekunden zu bleiben und mindestens so lange, bis die Anwendung vollständig initialisiert wurde.
  • Der übernächste Abschnitt zeigt, wie der Splash Screen solange zu sehen ist, bis der User auf den "Starten" Schalter geklickt hat. Dieses kann er natürlich erst dann tun, wenn die Anwendung vollständig initialisiert ist.

Anschließend kommt der Teil im Projekt, welcher wieder identisch für alle Lösungen ist.

......
Ich bin nicht zurück, ich tue nur so
 
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#11
  Alt 28. Okt 2003, 11:01
Sicher ist sicher, folgende Zeile noch einfügen:

Code:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  Sleep(1500);
  frmSplash.Label1.Caption := 'Initializing...';
  [color=#008000]frmSplash.Refresh;[/color]
end;
......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

 
Delphi 10.1 Berlin Enterprise
 
#12
  Alt 28. Okt 2003, 11:42
Wann wird der Splash Screen den nicht neu gezeichnet?
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#13
  Alt 28. Okt 2003, 12:30
Zitat von Stevie:
Wann wird der Splash Screen den nicht neu gezeichnet?
Ja, aber ansonsten kann es passieren, daß das Label nicht neu gezeichnet wird.

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

 
Delphi 10.1 Berlin Enterprise
 
#14
  Alt 28. Okt 2003, 12:56
Zitat von sakura:
Zitat von Stevie:
Wann wird der Splash Screen den nicht neu gezeichnet?
Ja, aber ansonsten kann es passieren, daß das Label nicht neu gezeichnet wird.

......
Frage: Wann? -> Antwort: Ja ->

Ich wollte doch nur wissen, wann das denn der Fall sein kann, dass das Label nicht neu gezeichnet wird!?
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#15
  Alt 28. Okt 2003, 13:34
Sorry Wenn Dein Programm mehr macht als nur Zeit verstreichen zu lassen. Also wenn der SplashScreen angezeigt wird und im Hintergrund wirklich die Anwendung geladen wird, Daten analysiert, etc. Der SplashScreen wird nur dann neu gezeichnet, wenn die Anwendung gerade nichts tut ("ThreadState" ist idle).

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

 
Delphi 10.1 Berlin Enterprise
 
#16
  Alt 28. Okt 2003, 13:39
Ahhh, richtig!
Jetzt wird mir auch klar, warum manchmal ein Programm seine GUI nicht updatet, wenn es ausgelastet ist! Danke sakura! *streichel*
Stefan
  Mit Zitat antworten Zitat
PlanetofBlade

 
Delphi 5 Professional
 
#17
  Alt 27. Nov 2003, 15:25
Hi,

erst ma n1 zum Tutorial. Hat sofort funktioniert, als ich es einbaute, aber


Ich erstelle hinter dem Splash Screen andere Formulare

Delphi-Quellcode:
    Application.CreateForm(TdasFormular, dasFormular);
    dasFormular.Free;
Jenes Formular wird von mir nach dem Create sofort wieder gefreeed, sodass es eigentlich nicht zu einem Zeichnen des Formulars kommen kann, aber trotzdem sehe ich ein graues Fenster das kurz zuckt, also sich anzeigt und sich dann closed!

Also mein Splash - Screen sollte halt vor allem Modal sein, was im Hintergrund passiert!
Ich versteh das halt nicht warum da das Fenster angezeigt wird, aber ich es erstens Visible := FALSE gesetz habe und zweitens ich es eigentlich gar nicht zum zeichnen auffordere, also mit

    dasFormular.Show; Need Help

tHx schon ma!

gReetz PlaneT
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#18
  Alt 27. Nov 2003, 15:32
Gegen das "aufblitzen" des Forms kann ich Dir nicht helfen, aber den Splash könntest Du mit FormStykle zu fsStayOnTop im ObjectInspector nachhelfen

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
PlanetofBlade

 
Delphi 5 Professional
 
#19
  Alt 27. Nov 2003, 15:35
Supi, des funtzt!

tHx nochma für die Hilfe und dein schnelles reagieren
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#20
  Alt 27. Nov 2003, 15:35
Zitat von PlanetofBlade:
Supi, des funtzt!


Zitat von PlanetofBlade:
tHx nochma für die Hilfe und dein schnelles reagieren
Ich war gerade da

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    


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:04 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