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/)
-   -   Timer & Formwechsel (https://www.delphipraxis.net/125038-timer-formwechsel.html)

Störtebeker 29. Nov 2008 18:01


Timer & Formwechsel
 
Hallo,

ich habe zwei Formulare. Auf dem einen ist ein Timer mit folgendem Code:
Delphi-Quellcode:
procedure TForm4.Timer1Timer(Sender: TObject);
begin
    if Progressbar2.position > 99 then begin
      progressbar2.position := 0;
      end
  else
    begin;
      progressbar2.position := progressbar2.position + 1;
      form3.Timer2.enabled:=true;
    end;
end;
Jetzt soll die Form nach einer bestimmten Zeit durch die andere Form ersetzt werden. Dazu verwende ich einen Timer auf der zweiten Form mit dem Code:
Delphi-Quellcode:
procedure TForm3.Timer2Timer(Sender: TObject);
begin
Timer2.Interval := 10;
  if ActiveControl <> nil then begin
    ActiveControl.Left := ActiveControl.Left + 1;
    Form3.show;
    Form4.Hide;
    form4.Timer1.Enabled:=false;
end;
end;
Doch das scheint nicht zu funktionieren. Die Progressbar läuft und läuft und läuft. Ein Formwechsel findet allerdings nicht statt.

Schonmal im Voraus vielen Dank.

blawen 29. Nov 2008 19:25

Re: Timer & Formwechsel
 
Dein Problem liegt bei der Zeile
Delphi-Quellcode:
if ActiveControl <> nil then begin
Ohne genauere Hintergründe zu kennen, schlage ich z.B folgende Änderungen vor:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Progressbar1.Position > 99
    then begin
      progressbar1.position := 0;
      Timer1.enabled := False;
      Form2.Timer1.enabled := True;
    end
  else
    progressbar1.position := progressbar1.position + 10;
end;
Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
  Form2.show;
  Form1.Hide;
  Form1.Timer1.Enabled := False;
end;

Störtebeker 29. Nov 2008 19:39

Re: Timer & Formwechsel
 
Also, danke erstmal. Werde es gleich mal ausprobieren. Um mein eigentliches Vorhaben vielleicht noch etwas zu verdeutlichen. Wenn mein Programm das erste Mal gestartet wird, soll eine Konfiguration für das Programm durchgeführt werden. Dazu erstelle ich mehrer Formen, auf denen die Einstellungen + Anmeldedaten eingestellt werden.

Zu beginn dieser Einstellungen soll eine Form kommen, die mit einem Label versehen ist, dass die Konfiguration initialisiert wird. Dazu soll eine Progressbar ein paar mal volllaufen und nach einer gewissen Zeit soll diese Form durch die, sagen wir es die "Willkommensform" der Konfiguration ausgetauscht werden. Und ich dachte mir, dass man das vielleicht mit Timern ganz gut lösen könnte. :wink:

UPDATE: Sehr gut Idee. Funktioniert einwandfrei. :thumb:

blawen 29. Nov 2008 20:03

Re: Timer & Formwechsel
 
Ob Du mit den Timern in diesem speziellen Falle glüclich wirst, mag ich bezweifeln.
Ich würde eher auf die Variante "splash screen" und Konsorte ausweichen.
Einen möglichen Ansatz findest Du hier (Posting #9.)

Update:
Im obigen Beispiel ist der Timer 2 grundsätzlich Nutzlos, ggf. kannst Du diesen also auch weglassen und z.B. eine Procedure "Start" definieren, welche das ganze übernimmt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 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