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 4 von 10   « Erste     234 56     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
 
canada
 
#31
  Alt 10. Mär 2004, 08:39
also ich habe es jetzt soweit hin bekommen das es mit dem Splash geht, es kommt und dann öffnet sich die hauptform(Hauptdatei), bloß habe ich im hauptfromular auch den folgenden Code enthalten
Code:
procedure TfrmMain.Button3Click(Sender: TObject);
begin
 Form3.ShowModal;
end;
bloß geht das net, er kompiliert es aber, wenn ich deie entsprechenden Button auswähle erhalte ich immer einen Speicherfehler an XYZ "0000000".

aber der Rest geht einwandfrei, die anderen Form`s.

Bild füge ich später bei, geht zur Zeit bloß net (Schule).

thx
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
 
#32
  Alt 10. Mär 2004, 08:45
Zitat von canada:
Code:
procedure TfrmMain.Button3Click(Sender: TObject);
begin
   Form3.ShowModal;
end;
bloß geht das net, er kompiliert es aber, wenn ich deie entsprechenden Button auswähle erhalte ich immer einen Speicherfehler an XYZ "0000000".
Hast Du in der Projektdatei (oder im Formular) vorher auch mit
Form3 := TForm3.Create(application); gemacht (will heissen: Das Formular erzeugt), bevor Du versuchst es anzuzeigen?
Sebastian Gingter
  Mit Zitat antworten Zitat
canada
 
#33
  Alt 10. Mär 2004, 08:51
danke das war es, ...
  Mit Zitat antworten Zitat
canada
 
#34
  Alt 10. Mär 2004, 13:20
naja, ich bins nochmal

noch eine letzte Frage, wie mach ich das bzw. was muss ich ändern wenn ich das splash auch sehen will wenn ich die Form3 öffne?!

(post oben drüber)
  Mit Zitat antworten Zitat
lorenz

 
Delphi 7 Personal
 
#35
  Alt 10. Mär 2004, 14:13
Hallo Canada,

Ja nicht mit StayOnTop?

MfG

Lorenz
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
 
#36
  Alt 10. Mär 2004, 14:18
Vorher (also vor Form3.Show) den Splashscreen erzeugen, anzeigen und nach dem Show wieder zerstören. - Halt aus der Unit raus aber mit demselben Code wie in der Projektdatei.
Sebastian Gingter
  Mit Zitat antworten Zitat
canada
 
#37
  Alt 10. Mär 2004, 16:03
Phoenix das geht bei mir trotzdem net, allg. oder ich hab wieder einen schönheits Fehler mit drinne ...
könntest du dir das mal anschauen, wäre ganz net
  Mit Zitat antworten Zitat
Unplugged

 
Delphi 6 Enterprise
 
#38
  Alt 23. Jul 2004, 00:46
Hi, ich hab leider auch ein Problem mit meinem Splashscreen

Der Splashscreen enthält eine Progressbar, die anzeigt inwieweit das Programm seine Daten vorbereitet hat. Die Daten werden dabei im Hauptformular aufbereitet über OnCreate. Nur leider erhalte ich immer eine EExternalException und verstehe nicht wo das Problem ist

Delphi-Quellcode:
begin
 try
  Splash := TSplash.Create(Application);
  Splash.Show;
  Application.Initialize;
  Splash.Update;
  Application.CreateForm(TForm1, Form1);
 finally
    Splash.Hide;
    Splash.Release;
 end;
  Application.Run;
end.
Delphi-Quellcode:
//Hauptformular
procedure TForm1.FormCreate(Sender: TObject);
begin
...
// von hier aus wird die Progressbar und ein Label des Splashscreens gesteuert
end;
Die Unit des Splashscreens enthält keine Funktionen/Ereignisse

Hoffe jemand kann mir weiterhelfen, Danke
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber

 
Delphi XE Professional
 
#39
  Alt 23. Jul 2004, 07:38
Hi!

Wann genau tritt den die Exception auf?
In welcher Zeile tritt sie auf?
Was steht in der OnCreate des Haupformulars drin?

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Unplugged

 
Delphi 6 Enterprise
 
#40
  Alt 23. Jul 2004, 13:31
oh man bin ich ein Trottel, es lang lediglich an einem TRegistry.Free, was ausversehen anstelle ans Ende des OnCreate, mitten hinein gelangte. Nach dieser Zeile wurde aber noch auf die Registry zugriffen wodurch dann diese Exception ausgelöst wurde.
War vielleicht gestern schon zu spät für nen klaren Kopf ;)

Danke && Greetz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 10   « Erste     234 56     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 11:00 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