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
 
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.413 Beiträge
 
Delphi 12 Athens
 
#2

Re: Tutorial: Splash Screens

  Alt 9. Sep 2003, 12:57
Bitte warten Sie, während die Anwendung startet...

Um dieses Verhalten zu erreichen, müssen wir zwei Dinge tun. Erstens, das Splash-Formular muss "wissen", wann alle Vorbereitungen zum Start getroffen wurden, und zweitens, das Splash-Formular muss "wissen", wann die drei Sekunden abgelaufen sind.

Punkt 1

Dazu legen wir einfach eine Eigenschaft an, welche den Typ Boolean hat und den Status der Anwedung speichert. Wenn der Status geändert wird, versuchen wir das Splash-Form zu schließen.

Delphi-Quellcode:
type
  TfrmSplash = class(TForm)
    ...
  private
    { Private declarations }
    FInitializationDone: Boolean;
    procedure SetInitializationDone(const Value: Boolean);
    ...
  public
    { Public declarations }
    property InitializationDone: Boolean read FInitializationDone write SetInitializationDone;
    ...
  end;

procedure TfrmSplash.SetInitializationDone(const Value: Boolean);
begin
  FInitializationDone := Value;
  Close;
end;
Ausserdem fügen wir noch einen TTimer auf das Formular ein, setzen das Intervall auf 3000 (3 Sekunden) und stellen sicher, daß Enabled auf True gesetzt ist. Im OnTimer Ereignis disablen wir den Timer (es müssen ja nur die ersten 3 Sekunden abgelaufen sein ) und versuchen wiederum das Form zu schließen.

Delphi-Quellcode:
procedure TfrmSplash.tmrMinTimingTimer(Sender: TObject);
begin
  tmrMinTiming.Enabled := False;
  Close;
end;
Jetzt zum "Trick"

Wann kann der Splash Screen nun wirklich geschlossen werden? Eigentlich doch nur dann, wenn die Anwendung geladen wurde und wenn die drei Sekunden abgelaufen sind. Das lässt sich recht einfach überprüfen. Ersteres daran, das die Variabe FInitializationDone den Wert True hat und letzteres daran, daß der Timer disabled ist. Dazu einfach folgenden Code in das OnCloseQuery-Ereignis schreiben.

Delphi-Quellcode:
procedure TfrmSplash.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose := (not tmrMinTiming.Enabled) and FInitializationDone;
end;
Wie es weiter geht, steht im übernächsten Abschnitt.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
 


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:15 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