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 7 von 10   « Erste     567 89     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 freq.9
freq.9

 
Delphi 7 Professional
 
#61
  Alt 31. Okt 2005, 14:04
Ich habe nun nicht alle "Lösungen" durchgesehen aber gibt es hier irgendwo eine "richtige" Lösung eines Splash-Screens, der sich erst dann selbst schliesst, wenn die Anwendung komplett geladen ist?
Jan Pieper
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#62
  Alt 31. Okt 2005, 14:31
Hi, evtl. hilft dir das hier weiter.
  Mit Zitat antworten Zitat
Nils_13
 
#63
  Alt 23. Dez 2005, 14:24
So nun noch mein senf: Genial ! Der Timer kann auch auf 0 stehen und es läuft.

Wenn ich die Anwendung beenden kommt ein Fehler (siehe Screenshot).
Miniaturansicht angehängter Grafiken
fehelrtut_165.jpg  
  Mit Zitat antworten Zitat
SubWorx

 
Delphi 2006 Architect
 
#64
  Alt 12. Jan 2006, 14:34
Zitat von sakura:
Jetzt wird die Anwedung gestartet und sämtliche Formulare und Datenmodule geladen. Abschließend setzen wir die Eigenschaft frmSplash.InitializationDone auf True und überlassen die Anwendung dem Benutzer.

Delphi-Quellcode:
begin
  frmSplash := TfrmSplash.Create(Application);
  try
    frmSplash.Show;
    frmSplash.Refresh;
    Application.Initialize;
    Application.CreateForm(TfrmMain, frmMain);
    // (1)
    // weitere Formulare und Datenmodule hier her verschieben (siehe 2)
  finally
    frmSplash.InitializationDone := True;
  end;
  // (2)
  // Standardmäßig erstellte Formulare wird Delphi hier eintragen
  // nach (1) verschieben !!!
  Application.Run;
end.
und wo soll dieser kram hin?
in die TfrmMain.FormCreate? oder wo? steht ja ausser einem begin..end. nix dabei

gruß
Sub
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#65
  Alt 12. Jan 2006, 14:40
Zitat von SubWorx:
steht ja ausser einem begin..end. nix dabei
Und damit sollte doch klar sein, wo der Code hingehört . In Pascal gibt es nur eine Stelle mit begin/end. im gesamten Quellcode.

Projekt -> Quelltext anzeigen
Sebastian
  Mit Zitat antworten Zitat
dfried
 
#66
  Alt 12. Jan 2006, 14:43
Na in die Projektdatei (dpr) natürlich!
Wenn du dir den QQuelltext mal genauer anschaust siehst du dort, dass das abschliessende "end" einen "." hat und kein ";" und auch dass das FrmMain erst hier erzeugt wird (Application.CreateForm(TfrmMain, frmMain)!
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#67
  Alt 12. Jan 2006, 14:52
Zitat von Khabarakh:
Zitat von SubWorx:
steht ja ausser einem begin..end. nix dabei
Und damit sollte doch klar sein, wo der Code hingehört . In Pascal gibt es nur eine Stelle mit begin/end. im gesamten Quellcode.
In diesem Fall ist es das Projekt File (*.dpr), aber die Aussage, dass es nur eine Stelle in einem Pascal Projekt gibt in dem begin...end. vorkommt ist schlichtweg falsch.

In jeder Unit kann begin...end. stehen.

Das end. signalisiert nur das Dateiende.

Delphi-Quellcode:
unit Unit2.pas;
uses
  Dialogs,
...
begin
  MessageShow('Huch');
end.
Funktioniert sehr wohl in diesem Beispiel ist es gleichbedeutend mit:
Delphi-Quellcode:
unit Unit2.pas;
uses
  Dialogs,
...
initialization
  MessageShow('Huch');
end.
In Turbo Pascal 3.0 gab es z.B. das initialization noch nicht, damals wurde begin verwendet (und das funktioniert immer noch).
Mit dem finalization wurde dann auch das initialization benötigt, da der Compiler ja irgendwie erkennen muß welchen Code er beim Programmende ausführen muß.
  Mit Zitat antworten Zitat
SubWorx

 
Delphi 2006 Architect
 
#68
  Alt 13. Jan 2006, 08:59
Ahhhhhh jetzt klappts auch mal

Vielen Dank euch allen.

Falls meine Frage unfreundlich klang, möchte ich mich natürlich dafür entschuldigen.

Abgesehen von meinem Verständnisproblem ist das Tutorial gut ... war genau das was ich brauchte für eine neue Anwendung

Danke an Daniel dafür.

bis denne
Sub
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#69
  Alt 8. Jul 2006, 19:59
Sry, aber ich muss einfach fragen:
Wie schaffe ich es, dass erst nachdem der Splash geschlossen wird, das andere Fenster sichbar wird?
Fabian
  Mit Zitat antworten Zitat
Nils_13
 
#70
  Alt 8. Jul 2006, 20:03
Hm ? Das ist doch normalerweise automatisch so. Bei mir läuft der obige Code perfekt --> Das Fenster wird erst sichtbar, wenn der Splash Screen weg ist.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 10   « Erste     567 89     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 06:58 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