Autor |
Beitrag |
Daniboy
Hält's aus hier
Beiträge: 11
|
Verfasst: So 05.10.08 01:39
hallo!
mein timer zählt von 60.000 runter (eine minute).
nun möchte ich in einem label die verbleibenden sekunden anzeigen, also 60,59,58...
ist dies möglich?
mfg Daniboy
Zuletzt bearbeitet von Daniboy am Mo 27.10.08 15:13, insgesamt 1-mal bearbeitet
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 05.10.08 01:57
logisch!
stell deinen timer auf 1000. dann zählst du einen counter um 1 hoch (bei 60 soll er dann ja nicht mehr weitermachen) und gib z.b. in einem label 60-counter aus...
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 05.10.08 18:02
Oder den Counter gleich auf 60 und dann subtrahieren, das ist nicht so umständlich 
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 05.10.08 18:17
Dann kommst du bei 50 bis 70 Sekunden raus.
Besser, du merkst dir die aktuelle Zeit beim Start ( GetTickCount), und ziehst sie im Timer-Event immer von der aktuellen Zeit ab. Das ist die verstrichene Zeit, die du noch von 60 subtrahieren musst, um die Restzeit zu bekommen.
In Delphi übersetzt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.StartButtonClick(Sender: TObject); begin StartTime := GetTickCount; end;
procedure TForm1.Timer1Timer(Sender: TObject); var Diff, CountDown: Cardinal; begin Diff := GetTickCount - StartTime;
CountDown := 60 - Diff;
Label1.Caption := IntToStr(CountDown); end; |
end;
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 05.10.08 18:42
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| type TFormBla = class(TForm) ... private FCounter: Integer; ... end;
procedure TFormBla.FormCreate(Sender: TObject); begin FCounter := 60; end;
procedure TFormBla.Timer1Timer(Sender: TObject); begin Dec(FCounter); Label1.Caption := IntToStr(FCounter); Timer1.Enabled := FCounter > 0; end; |
Wo ist da jetzt das Problem?
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 05.10.08 18:52
@DaddyH:
Bei deiner Variante könnten OnTimer-Ereignisse verloren gehen, sollte das System beim Auftreten eines solchen Ereignisses zu stark ausgelastet sein.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 05.10.08 18:53
DeddyH hat folgendes geschrieben : | Wo ist da jetzt das Problem? |
Das Problem ist, dass du jetzt immer nach mindestens einer Sekunde den Counter herunterzählst. Wenn die CPU ausgelastet ist oder etwas anderes passiert, kann sich der Abstand auch mal vergrößern. Außerdem ist der Windows-Timer sehr ungenau.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 05.10.08 18:55
Wenn es so auf Genauigkeit ankommt, kann man ja auch einen Multimedia-Timer verwenden. Allerdings glaub ich nicht, dass das hier nötig ist, scheint ja mehr eine Hausaufgabe o.ä. zu sein.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 05.10.08 18:58
DeddyH hat folgendes geschrieben : | scheint ja mehr eine Hausaufgabe o.ä. zu sein. |
Gerade da sollte ja verlangt werden, dass man einen sauberen Quelltext abliefert. Und da ist nun einmal nicht, Variablen in Timern herunterzuzählen.
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: So 05.10.08 20:31
Es gibt Leute die können sich in alles reinsteigern - Warum ?
Der Fragesteller hat doch noch garnicht reagiert !
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: So 05.10.08 23:41
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 06.10.08 08:17
|
|
Daniboy 
Hält's aus hier
Beiträge: 11
|
Verfasst: Mo 06.10.08 15:39
hey...erst einmal vielen dank für die vielen Antworten!
ich bin delphi-anfänger und habe deshalb so eine einfache frage gestellt, die ich persönlich doch ziemlich schwierig fand.
aber hab es ja jezt hinbekommen..danke nochma x)
mfg Daniel
|
|