Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Timer
theSonGoku - So 19.07.09 19:33
Titel: Timer
Hallo,
ich habe folgendes Problem.
Ich habe in meiner Button Prozedur die Anweisung:
Delphi-Quelltext
1:
| Timer1.Enabled := True; |
So: In der Timer Prozedure steht nun:
Delphi-Quelltext
1:
| Label6.Caption := 'Zeit: ' + IntToStr(Timer1.Interval) + ' Sekunden' |
Der Interval steht bei 25000. Ist erstmal nur testweise.
Das eigendliche Problem ist, dass es nicht funktioniert. Alles was in der Timerprozedure steht passiert nicht.
Ja, der Timer steht anfangs auf False.
Bitte helft mir. :)
mfG
theSonGoku
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 20.07.2009 um 09:34
Moderiert von
Narses: Delphi-Tags hinzugefügt
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Delete - So 19.07.09 19:41
Hast Du auch 25 Sekunden gewartet?
theSonGoku - So 19.07.09 19:43
In meinem Programm ist das ja so, dass wenn ich auf den Button klicke nen paar Sachen passieren und halt der Button unsichtbar wird. Und da wo der Button war ist halt dann Label6. Und dann sollte das da ja runtergezählt werden, was aber nicht passiert.
Delete - So 19.07.09 19:45
Wenn Du den Button klickst, wird der Timer aktiviert. Da dessen Intervall nach Deinen Angaben auf 25.000 steht, feuert er nach 25 Sekunden, daher meine Frage von vorhin.
theSonGoku - So 19.07.09 19:48
Nein habe ich nicht.^^
Denn er soll ja bis 0 runterzählen. Also 25 Sekunden runterzählen.
Delete - So 19.07.09 19:53
Dann setz das Intervall auf 1000 und lasse eine Variable herunterzählen.
theSonGoku - So 19.07.09 19:55
Und wie zähle ich dann die Variable herunter?
Delete - So 19.07.09 19:56
1 abziehen, wie denn sonst?
theSonGoku - So 19.07.09 19:57
Ja aber ich kann ja schlecht so schreiben:
ABC := 5;
ABC := ABC -1;
Delete - So 19.07.09 20:10
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| type TDeinForm = class(TForm) ... private FZaehler: integer; end; ...
procedure TDeinForm.FormCreate(Sender: TObject); begin FZaehler := 25; end;
procedure TDeinForm.DeinTimerTimer(Sender: TObject); begin FZaehler := FZaehler - 1; end; |
Regan - So 19.07.09 21:58
Warum eine Variable einführen? Man kann auch Timer1.Tag nehmen. Ist ja auch Integer.
Delete - So 19.07.09 22:12
Und das soll man nach 3 Monaten noch begreifen? Einsparung von Variablen auf Kosten der Verständlichkeit ist in meinen Augen keine Option.
jaenicke - Mo 20.07.09 06:26
Dafür gibt es normalerweise Headerkommentare in der Unit. Dort steht bei mir (wenn ich sie verwende) die Verwendung der Tag Eigenschaften als Tabelle drin, genau wie alles andere, was jemand, der den Code nicht kennt, nicht sofort durchschauen würde.
Solange man das ordentlich dokumentiert ist das durchaus legitim. Hier würde ich es aber in der Tat nicht machen, da es eigentlich nichts mit dem Timer zu tun hat. Der zählt ja nur. Ich benutze Tag nur dann, wenn der Wert auch einen direkten Bezug zur Komponente hat. Zum Beispiel bei einer ListView die gerade sortierte Spalte usw.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!