Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SplashScreen erst nach Button ausblenden und Anwendung start (https://www.delphipraxis.net/47998-splashscreen-erst-nach-button-ausblenden-und-anwendung-start.html)

Taladan 19. Jun 2005 11:27


SplashScreen erst nach Button ausblenden und Anwendung start
 
Hallo. Ich habe einen SplashScreen. Dieser soll aber erst nach nach einen gewissen Zeitpunkt sich schließen (ca. 10 sec) und dann auch nur über einen OK Button. Erst dann soll das Hauptprogramm gestartet werden. Doch leider ploppt der Splashscreen selbst für mich kaum sichtbar (und ich weiß, das es ihn gibt) auf und ist dann verschwunden. Dieser scheint auch erst auf zu ploppen, wenn die Hauptform onScreen ist.
Grund: Der Lizenzgeber erlaubt die freie Nutzung der Daten, jedoch nur mit einen gut Sichtbaren CopyRight. Als Beispiel wird ein Ginweiß auf einen SplashScreen genannt.

Hier meine Startroutine:
Delphi-Quellcode:
    // SplashScreen Fenster erstellen
    SplashScreenForm := tSplashScreenForm.Create (Application);
    SplashScreenForm.Show;
    SplashScreenForm.Update;
    // SplashScreen Fenster anzeigen
    Application.Initialize;
    Application.CreateForm(TMainForm, MainForm);
    Application.CreateForm(TAboutBox, AboutBox);
    // SplashScreen Fenster ausbelenden
    SplashScreenForm.Hide;
    SplashScreenForm.Release;
    // SplashScreen Fenster freigeben
    Application.Run;
Und hier mein SplashScreen.OnShow
Delphi-Quellcode:
procedure TSplashScreenForm.FormShow(Sender: TObject);
var s : string;
begin
  inherited;
  GetDir(0, s);
  Label1.Caption:= 'Suche nach Unterverzeichnissen';
  s := s + '\Data';
  if DirectoryExists(s) = false then mkdir('\data');
  s:= s+'\';
  Label1.Caption := 'Unterverzeichnisse gefunden.';
  if FileExists(s+'Namen.tdt') then
  begin
    Label1.Caption := 'Lade Datenbank: Namen';
    NamenList := TMyObjectList.Create;
    NamenList.LoadFromFile(s+'Namen.tdt');
  end else begin
    Label1.Caption := 'Erstelle Datenbank: Namen';
    NamenList := TMyObjectList.Create;
    NamenList.SaveToFile(s+'Namen.tdt');
  end;
end;

fkerber 19. Jun 2005 11:30

Re: SplashScreen erst nach Button ausblenden und Anwendung s
 
Hi!

Dann bau doch ein DelayDelay ein.


Ciao Frederic

SirThornberry 19. Jun 2005 11:31

Re: SplashScreen erst nach Button ausblenden und Anwendung s
 
dann mach anstelle von
Delphi-Quellcode:
SplashScreenForm.Show;
einfach
Delphi-Quellcode:
SplashScreenForm.ShowModal;
und auf das SplashForm packst du einen Timer der den Schließen Button erst nach 10 Sekunden enabled

Taladan 19. Jun 2005 12:58

Re: SplashScreen erst nach Button ausblenden und Anwendung s
 
Delphi-Quellcode:
SplashScreenForm.ShowModal;
Das war auch ursprünglich mein gedanke, aber ich bekomme immer einen Laufzeitfehler.

Edit: Aus eienn sichbaren Fenster kann kein Modales gemacht werden, oder so ähnlich kommt da immer

SirThornberry 19. Jun 2005 15:28

Re: SplashScreen erst nach Button ausblenden und Anwendung s
 
das liegt dann wohl daran das das fenster zu dem Zeitpunkt schon sichtbar ist. Also solltest du das Property Visible auf False setzen (im Objectinspektor). Wenn der Fehler dann trotzdem noch ist musst du visible eben auf False setzen, danach am besten noch ein Application.ProcessMessages und dann sollte ShowModal auch funktionieren

Taladan 19. Jun 2005 22:44

Re: SplashScreen erst nach Button ausblenden und Anwendung s
 
Danke. Das funzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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 by Thomas Breitkreuz