Autor Beitrag
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 28.05.06 16:22 
hi, ich möchte eine TTimer Komponente pausieren, das heißt, zb ihr tick beträgt 15 sekunden und ich stoppe bei 10, dann soll das event 5 sekunden nach reaktivierung eintreffen und nicht weitere 15 sekunden auf sich warten lassen, wie bewerkstellige ich das am besten ?


mfg und danke schonmal ;)
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 28.05.06 16:39 
Hey Fear,
zähle doch mit einer Hilfsvariablen, nennen wir sie Time, die Sekunden. Deaktivierst du nun deinen Timer so hat Time den Wert 10, aktivierst du ihn wieder, zählt er ab 10 weiter.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  time := time + 1;
    if time = 15 then
     begin
      .... // dein event
      time := 0;


Hoffe ich konnt dir weiterhelfen :)
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 28.05.06 16:40 
man stoppt aber nicht auf die sekunde genau, das ist das problem, deshalb muss man irgendwie die differenz berechnen und dann solange wieder hochzählen, aber dann müsste man ein sehr kleines intervall nehmen und ungenau ist es dann ja auch irgendwie immer

EDIT: hab mir kurzerhand nen eigenengebaut, da der rest meines programmes auf die idle prozdedur setzt, konnte ich abhängig der zeitdifferenz einen sekundengenauen timer bauen, der sich pausieren lässt ;) problem gelöst
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.05.06 00:22 
Eine Möglichkeit: Der Timer hat ja keine Eigenschaft, die den aktuellen Zähler angibt.

- bei Aktivierung des Timers die Systemzeit lesen
- bei Deaktivierung noch einmal
- die Differenz in Millisekunden vor Reaktivierung als neuen Timerintervall übergeben

Vielleicht hilft es Dir. Gib mal bitte Bescheid.

Grüße

// Edit: Mist, ich sollte wirklich die Beiträge zu Ende lesen. Problem war gelöst ... :roll: Aber nett, dass ich es genauso gemacht hätte.
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 29.05.06 13:29 
das problem ist, dass auf langsamen rechner, das vielleicht nicht eingehalten werden kann und die differenz zum intervall größer wird (also net 15,1 sondern 16,7 oder sowas)