Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mehrere timer nacheinander (https://www.delphipraxis.net/127327-mehrere-timer-nacheinander.html)

juLiii 11. Jan 2009 12:26


mehrere timer nacheinander
 
hallo!!

Ich programmiere gerade eine Millionenshow und will dazu etwas Besonderes beim Telefonjoker machen.

Es soll nämlich ein anderes Formular geöffnet werden und dieses soll dann ein Männchen zeigen. Nebenbei erscheint eine Sprechblase in der erst ein Satz erscheinen soll und dann die richtige Antwort. Nachdem die richtige Antwort gezeigt wurde soll sich das Formular dann selbst wieder schließen.

Ich hätte mir gedacht ich mache das mit Timern.

Der 1. Timer soll Label1 erscheinen lassen

und wenn dieser fertig ist soll der 2. Timer Label2 erscheinen lassen.

Der 2. Timer zeigt die richtige Antwort dann ca. 3 Sekunden und dann soll sich das Fenster wieder von selbst schließen.

Wie schaffe ich es, dass die Timer nacheinander abgespielt werden und erst nach Ablauf des 2. Timers das Fenster geschlossen wird?? :?



juLiii

DeddyH 11. Jan 2009 12:31

Re: mehrere timer nacheinander
 
Obwohl man das sicherlich auch anders machen könnte:
Delphi-Quellcode:
procedure TDeinForm.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  //weiterer Code
  Timer2.Enabled := true;
end;

procedure TDeinForm.Timer2Timer(Sender: TObject);
begin
  Timer2.Enabled := false;
  //weiterer Code
  Timer3.Enabled := true;
end;

//etc. pp.
Das ist weder schön noch elegant, sollte aber funktionieren.

juLiii 11. Jan 2009 12:51

Re: mehrere timer nacheinander
 
ok ich stell mich vielleicht gerade etwas blöd an, aber ich verstehe nicht genau wo ich welchen Code hinschreiben soll.

ich brauche doch noch neben procedure TForm2.Timer1Timer(Sender: TObject);
eine andere procedure

Also:

zuerst öffne ich das Formular und sobald es gezeigt wird soll es losgehen.

Delphi-Quellcode:
label1.visible := true;
(nach 3 Sekunden
Delphi-Quellcode:
label1.Visible := false;
)

dann
Delphi-Quellcode:
label2.Visible := true;
(nach weiteren 3 Sekunden
Delphi-Quellcode:
label2.Visible := false; form2.close;
)

bei deiner Hilfe steht

Delphi-Quellcode:
procedure TDeinForm.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  //weiterer Code              :arrow: was soll ich jetzt hier einfügen? und wo setze ich fest wie lange der timer läuft
  Timer2.Enabled := true;
end;
irgendwie steh ich gerade total auf der Leitung :wall:

[edit=mkinzler] Delphi-Tags eingefügt Mfg, mkinzler[/edit]

mkinzler 11. Jan 2009 12:57

Re: mehrere timer nacheinander
 
Warum nimmst du nicht einen Timer, der sich entsprechend verhält?

DeddyH 11. Jan 2009 12:58

Re: mehrere timer nacheinander
 
Ein Timer hat eine Eigenschaft Interval, das ist die Zeit in Millisekunden, nach der das Timer-Event loslegt. Und da wo "weiterer Code" steht, kommt da rein, was der jeweilige Timer noch tun soll (Label anzeigen oder Formular schließen z.B.). Ansonsten verweise ich mal auf die Grundlagen-Tutorials: http://www.delphi-treff.de/tutorials/grundlagen/

juLiii 11. Jan 2009 13:33

Re: mehrere timer nacheinander
 
ich habe es jetzt so probiert

Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
  L_klug1.Visible := False;
  Timer1.Enabled := false;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin

L_klug1.Visible := true;
timer1.Enabled := True;
timer1.Interval := 5000;

end;
ich möchte eigentlich, dass der Timer gleich startet, wenn sich das Fenster öffnet

es funktioniert aber nicht - was mache ich falsch?

denn eigentlich will ich, dass dann der 2. timer auch noch los geht, wenn der 1. fertig ist aber irgendwie geht das nicht

:gruebel:

[edit=mkinzler] Das Setzen der Delphi-Tags kannst du übrigens auch selber machen! Einfach Code markieren und Button Delphi-Code oberhalb des Editorfensters anklicken. Mfg, mkinzler[/edit]

juLiii 11. Jan 2009 14:54

Re: mehrere timer nacheinander
 
jip habs geschafft xD

ein panel war das problem :roll:


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