![]() |
Re: Tutorial: Splash Screens
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
bei mir funktioniert der Splash screen nicht. :'( Weiss nicht was ich falsch gemacht habe. Kann mir jemand helfen bitte! Thx ArmyMan |
Re: Tutorial: Splash Screens
Alles klar!
Hab meinen doofen fehler gefunden :wall: ArmyMan |
Re: Tutorial: Splash Screens
Zitat:
...:cat:... |
Re: Tutorial: Splash Screens
Hallo,
ich benutzte diese tolle Tutorial auch als Grundlage für meinen Splash-Screen, ich habe noch einen kleinen Vorschlag dazu:
Code:
Damit wird der Cursor zum Stundenglas und der Start-Button disabled.
begin
frmSplash := TfrmSplash.Create(Application); try [b] frmSplash.InitializationDone := False; [/b] 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. |
Re: Tutorial: Splash Screens
Hi Sakura,
Also mit anderen Worten wird ein Form einfach nur angezeigt, bevor die Anwendung initialisiert wurde? und @ canada: Geiles Design!! Will das auch!! :-D |
Re: Tutorial: Splash Screens
Zitat:
|
Re: Tutorial: Splash Screens
:wiejetzt:
Verständnisfrage: das bedeutet doch, ich kann auch so etwas machen:
Delphi-Quellcode:
(also ich meine wenn ich das erstmal ohne Timer mache)
begin
frmSplash := TfrmSplash.Create(Application); frmSplash.Show; frmSplash.Refresh; Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; frmSplash.Close; end. Ich will halt nicht nur abschreiben, sondern auch nachvollziehen :-D |
Re: Tutorial: Splash Screens
Sagt mal Mädels...
Müsst ihr denn Miezes Tutorial so zumüllen? Wenn ihr Fragen, Sorgen, Ängste,... habt könnt ihr doch in der DP in der passenden Sparte einen Thread aufmachen. Dieses Tutorial-spamming ist zum Beispiel der Hauptgrnd dafür, dass ich noch keines verfasst habe. (Und es auch nicht tun werde solange es hier Gang & Gebe ist Tutorials mit Fragen zuzumüllen. :? ) |
Re: Tutorial: Splash Screens
Hi,
ich habe es so gemacht:
Delphi-Quellcode:
Gruß
SplashForm := TSplashForm.Create(Application);
SplashForm.Show; SplashForm.Update; Application.Title := 'SBNBUCH 2004'; Application.CreateForm(TSBN_Buch, SBN_Buch); Application.CreateForm(TDataModule_SBNBUCH, DataModule_SBNBUCH); . . . . SplashForm.Hide; SplashForm.Free; Application.Run; [Edit: Hi Robert_G. das war nicht meine Absicht ] |
Re: Tutorial: Splash Screens
@DymonD
Jepp, so in etwa... In der Delphi 5 Hilfe steht:
Delphi-Quellcode:
begin
Application.Initialize; with TForm5.Create(nil) do try ProgressBar1.Max := 100; Show; // Startbildschirm mit ProgressBar anzeigen Update; // Anzeige von Form5 auslösen Application.CreateForm(TForm1, Form1); ProgressBar1.StepBy(25); Application.CreateForm(TForm2, Form2); ProgressBar1.StepBy(25); Application.CreateForm(TForm3, Form3); ProgressBar1.StepBy(25); Application.CreateForm(TForm4, Form4); ProgressBar1.StepBy(25); finally Free; end; Application.Run; end. [Edit]Ups, Robert's Wutanfall zu spät gesehen...[/Edit] |
Re: Tutorial: Splash Screens
Oki THX!!
und @ Robert_G: ich denke mal, dass man das nicht Zuspammen nennen darf. Ich finde, dass es gerade passend ist, wenn zu einem Tutorial Fragen gestellt werden, sie auch in diesem Thread geschriben werden, anstatt immer ein neues Thread zu öffnen. Dann kann 1.) der Author schneller antworten und 2.) bezieht es sich ja irgendwie auf das Tutorial. |
Re: Tutorial: Splash Screens
ich verweise mal auf einen eigenen Post. ;) (Ich tippe ungern Dinge doppelt)
![]() |
Re: Tutorial: Splash Screens
Naja... ich finde aber dennoch, solange das Fragen zum Tutorial sind, ist es schon legitim, sie in den Thread zu schreiben. Ansonsten gäbe es den Tutorial doch nur zum Herunterladen, oder?
|
Re: Tutorial: Splash Screens
Hallo und danke,
vielleicht schreibst du noch hin, wo man den Projektcode findet. Ich musste erst suchen. :roll: Projekt - Quelltext anzeigen MfG freak |
Re: Tutorial: Splash Screens
Hmm, ja wirklich praktisch.
Ich brauches zwar an sich nicht ( objektiv ) aber es sieht natürlich verdammt wichtig aus! Jetzt nur mal 2 Probleme: 1.: Wenn das Prog gestartet ist, kann man auf dem Splash-Screnn leider nichts machen. Also was ich damit meine: Es wäre ja praktisch, wenn man da zum Beispiel ein Label einfügt, das bei OnClick die ShellExecute meiner HP macht. Dies geht aber aufgrund der CPU-Usage nicht wirklich. ( Eieruhr immer sichtbar ) Und: wenn das Hauptform schon sichtbar ist, dauert es immer noch etwas, bis der Splash-Screnn verschwindet. Das ist auch teilweise etwas störend. Das zweite ist natürlich nicht so fatal, sondern nur ein Schönheitsfehler, aber das erste finde ich wirklich misslich. |
Re: Tutorial: Splash Screens
Zitat:
Delphi-Quellcode:
Darum ist sie sichtbar, nicht wegen der Auslastung. ;)
btnStart.Cursor := crHourGlass;
|
Re: Tutorial: Splash Screens
Zum zweiten:
Zitat:
Zum ersten: Das liegt wohl an dem Sleep. Aber ich habe jetzt den Source nicht mehr im Kopf. Aber an sich sollte nichts dagegen sprechen, dass zu machen. |
Re: Tutorial: Splash Screens
nein, ich hab die eieruhr nie eingestellt!
das habe ich weggelassen, eben damit man auf den einen Link klicken kann, und damit das dann auch noch gut aussieht Nachtrag: Hat irgendwas mit dem "Sleep" zu tun. Währenddessen kann man scheinbar auch auf anderen Forms nix anderes machen?!? |
Re: Tutorial: Splash Screens
Jupp, sage ich ja... Sleep pausiert die ganze Anwendung.
|
Re: Tutorial: Splash Screens
Im Forum gab es die Frage zu einem Spash Screen mit Alpha Blending.
Ich habe mal auf die schnelle ein kleines Beispiel gebastelt. ![]() Das Beispiel ist ein Minimalbeispiel für einen Splashscreen. Es ging mir nur darum das Ein- und Ausblenden eines Forms zu demostrieren. Viel Spaß |
Re: Tutorial: Splash Screens
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?
|
Re: Tutorial: Splash Screens
Hi, evtl. hilft dir
![]() |
Re: Tutorial: Splash Screens
Liste der Anhänge anzeigen (Anzahl: 1)
So nun noch mein senf: Genial :thumb: ! Der Timer kann auch auf 0 stehen und es läuft.
Wenn ich die Anwendung beenden kommt ein Fehler (siehe Screenshot). |
Re: Tutorial: Splash Screens
Zitat:
in die TfrmMain.FormCreate? oder wo? steht ja ausser einem begin..end. nix dabei gruß Sub |
Re: Tutorial: Splash Screens
Zitat:
Projekt -> Quelltext anzeigen |
Re: Tutorial: Splash Screens
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)! |
Re: Tutorial: Splash Screens
Zitat:
In jeder Unit kann begin...end. stehen. Das end. signalisiert nur das Dateiende.
Delphi-Quellcode:
Funktioniert sehr wohl in diesem Beispiel ist es gleichbedeutend mit:
unit Unit2.pas;
uses Dialogs, ... begin MessageShow('Huch'); end.
Delphi-Quellcode:
In Turbo Pascal 3.0 gab es z.B. das initialization noch nicht, damals wurde begin verwendet (und das funktioniert immer noch).
unit Unit2.pas;
uses Dialogs, ... initialization MessageShow('Huch'); end. 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ß. |
Re: Tutorial: Splash Screens
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 |
Re: Tutorial: Splash Screens
Sry, aber ich muss einfach fragen:
Wie schaffe ich es, dass erst nachdem der Splash geschlossen wird, das andere Fenster sichbar wird? |
Re: Tutorial: Splash Screens
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.
|
Re: Tutorial: Splash Screens
Seltsam...
Ich habe folgenden Code:
Delphi-Quellcode:
Splash:
begin
FSplash := TFSplash.Create(Application); try FSplash.Show; FSplash.Refresh; Application.Initialize; Application.Title := 'TrackMania IPC'; Application.CreateForm(TFForm, FForm); Application.CreateForm(TForm1, Form1); finally FSplash.InitializationDone := True; end; Application.Run; FForm.Visible := false; end.
Delphi-Quellcode:
Ich habe außer dort beim Fade KEIN Sleep.
procedure TFSplash.Show;
var i : Integer; begin inherited; for i := 0 to 255 do begin AlphaBlendValue := i; Application.ProcessMessages; Sleep(2); end; end; procedure TFSplash.FormClose(Sender: TObject; var Action: TCloseAction); var i : Integer; begin for i := 255 downto 0 do begin AlphaBlendValue := i; Application.ProcessMessages; Sleep(2); end; Action := caFree; UIPC.FForm.Enabled := true; FSplash := nil; end; procedure TFSplash.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := (not Timer.Enabled) and FInitializationDone; end; procedure TFSplash.SetInitializationDone(const Value: Boolean); begin FInitializationDone := Value; Close; end; procedure TFSplash.TimerTimer(Sender: TObject); begin Timer.Enabled := False; Close; end; end. |
Re: Tutorial: Splash Screens
Moin Jungs !
Wollte nur mal eben sagen ... Vielen Dank für diesen Fred! Hat mich sehr geholft :hello: :witch: |
Re: Tutorial: Splash Screens
Ach sorry!
Vergesst den Post! Hab übersehn, dass der Splash noch im Hintergrund offen ist! Kann man das nicht so ändern, dass das Main-Window hinter dem Splash erscheint? |
Re: Tutorial: Splash Screens
Zitat:
...:cat:... |
Re: Tutorial: Splash Screens
Zitat:
Edit: Da war ich wohl zu langsam ... |
Re: Tutorial: Splash Screens
Dankeschön!
Jetzt kommt mir nur grad eins etwas seltsam vor.... Ich kann den SplashScreen nicht schließen. oO Weder über das 'X', noch über nen Close-Button. oO Es passiert einfach nix, wenn ich draufklicke... Und autom. tut sich auch nix. Der OnClose-Befehl wird ausgeführt, hab ich grad mal gemerkt. Es wird einfach nix geclosed. Hier mal noch der Code des Splash-Forms:
Delphi-Quellcode:
unit Unit4;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg; type TSplash = class(TForm) Timer1: TTimer; Image1: TImage; Label1: TLabel; Button1: TButton; procedure Timer1Timer(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); private { Private declarations } FInitializationDone: Boolean; procedure SetInitializationDone(const Value: Boolean); public { Public declarations } property InitializationDone: Boolean read FInitializationDone write SetInitializationDone; end; var Splash: TSplash; implementation uses Unit1; {$R *.dfm} procedure TSplash.Timer1Timer(Sender: TObject); begin Timer1.Enabled := False; close; end; procedure TSplash.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := (not Timer1.Enabled) and FInitializationDone; end; procedure TSplash.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; Splash := nil; Form1.Enabled := True; end; procedure TSplash.SetInitializationDone(const Value: Boolean); begin FInitializationDone := Value; close; end; procedure TSplash.Button1Click(Sender: TObject); begin close; end; end. |
Re: Tutorial: Splash Screens
Du hast den Code gezeigt, welcher den Splash-Screen automatisch schließt (wenn das Hauptformular die "fertig"-Meldung gesandt hat) - lade Dir alle Beispiele herunter, dann siehst Du die verschiedenen Möglichkeiten.
...:cat:... |
Re: Tutorial: Splash Screens
Hi,
kann es vielleicht auch sein, dass Du den Code in der Projektdatei vergessen hast? |
Re: Tutorial: Splash Screens
@ Die Muhkuh: Jap, ist auch alles drin.
Delphi-Quellcode:
@ sakura: Das komische ist ja, dass ich keinen Unterschied in der Hinsicht finden kann. Entweder bin ich total blind, oder es kann sich nu um ne Kleinigkeit handeln...
begin
Splash := TSplash.Create(Application); try Splash.Show; Splash.Refresh; Application.Initialize; Application.Title := 'SPlan'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TFaecherBox, FaecherBox); Application.CreateForm(TSettings_Standard, Settings_Standard); Application.CreateForm(TAboutBox, AboutBox); Application.CreateForm(THTMLFarben, HTMLFarben); Application.CreateForm(TSettings_FTP, Settings_FTP); Application.CreateForm(TSchullogo, Schullogo); Application.CreateForm(TeMail, eMail); Application.CreateForm(TReadme, Readme); Application.CreateForm(TSplash, Splash); finally Splash.InitializationDone := True; end; Application.Run; |
Re: Tutorial: Splash Screens
Was hat der Timer für ein Intervall?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 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