AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bekomme meine Variante vom Splashscreen nicht hin
Thema durchsuchen
Ansicht
Themen-Optionen

Bekomme meine Variante vom Splashscreen nicht hin

Ein Thema von DoktorD · begonnen am 9. Mai 2007 · letzter Beitrag vom 14. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#1

Bekomme meine Variante vom Splashscreen nicht hin

  Alt 9. Mai 2007, 10:29
Hi. Habe mich wegen eines SplashScreen an foldenden Post hier im Forum gehalten.

SplashScreen Tutorial

Funktioniert auch soweit ganz gut, nur sieht man meine Anwendung schon, wenn ich den SplashScreen sehe.

Ich will es so haben:
Ich starte die Anwendung und sehe meinen Splashscreen ca. 3 Sekunden. Wärenddessen wird im Hintergrund meine TFrmApplication vollständig geladen und dann erst angezeigt.

Hier mein Code bis jetzt:
Delphi-Quellcode:
begin
  frmSplash := TfrmSplash.Create(Application);
  try
    frmSplash.InitializationDone := False;
    frmSplash.Show;
    frmSplash.Refresh;

    Application.Initialize;
    Application.CreateForm(TFrmApplication, FrmApplication);
    // (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.

Danke schon mal
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#2

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 09:53
Kann mir denn niemand antworten? Ich hab das ganze WE rumprobiert und immer noch net hinbekommen.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#3

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:00
Hallo DoctorD!

Hast Du bei FrmApplication mal Visible auf False gesetzt und an der stelle, wo Deine Daten geladen werden dann Visible := True probiert?

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#4

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:03
So ähnlich hatte ich mir das auch gedacht. Aber wo muss ich denn dann die Form im Code auf Visible setzen?
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#5

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:07
Hi,

ich würde einfach das Splash Form dazu verwenden, da der ja erst ausgeht, wenn alles geladen ist, oder?

also von:
Delphi-Quellcode:
procedure TfrmSplash.SetInitializationDone(const Value: Boolean);
begin
  FInitializationDone := Value;
  Close;
end;
ändern zu
Delphi-Quellcode:
procedure TfrmSplash.SetInitializationDone(const Value: Boolean);
begin
  FInitializationDone := Value;
  if Assigned(FrmApplication) then FrmApplication.Visible := True;
  Close;
end;
Natürlich muß in die Uses Clause des Splash Screen nun auch die Unit vom FrmApplication. Das sollte Delphi nach dem Compile Error aber automatisch anbieten (je nach Delphi Version).

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#6

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:07
Habe das grad nochmal ausprobiert.

Also, wenn ich die Form standardmäßig Visible := false setze, und ich das Programm starte ohne im Code irgedwo Visible:=true zu setzte, dann wird die Form trotzdem visible.
Warum?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:08
wenn du es so haben willst musst du dein Mainform auf nicht sichtbar setzen (Application.ShowMainForm) und dann eben per Zeit kontrollieren das dein Splashscreen mindestens 3 Sekunden gezeigt wird. Nach 3 Sekunden blendest du dann das MainForm (Application.MainForm.Show) manuell ein.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#8

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:16
Habe jetzt beim OnCreate des SplashScreens mein Application.ShowMainForm := false gesetzt und dann nach dem Laden
Delphi-Quellcode:
procedure TFrmSplash.SetInitializationDone(const Value: Boolean);
begin
  FInitializationDone := Value;
  if Assigned(FrmApplication) then Application.ShowMainForm := true;
  Close;
end;
Aber meine Mainform wird von Anfang an angezeit. Und Visible im OI steht auch noch auf false.

Warum ist das so?
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#9

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:25
Setz mal Application.ShowMainForm := False; im OnCreate des FrmApplication, nicht beim Splash-Form.

Und im Splash dann:
Delphi-Quellcode:
procedure TFrmSplash.SetInitializationDone(const Value: Boolean);
begin
  FInitializationDone := Value;
  Application.MainForm.Show;
  Close;
end;
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Bekomme meine Variante vom Splashscreen nicht hin

  Alt 14. Mai 2007, 10:28
Zudem seh ich noch nirgends das du irgendwo 3 Sekunden wartest bzw. die Differenz zwischen 3 Sekunden und der Zeit die zum erstellen des Forms verbraucht wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:47 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