AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Verhalten der TTimer-Komponente während der Laufzeit...
Thema durchsuchen
Ansicht
Themen-Optionen

Verhalten der TTimer-Komponente während der Laufzeit...

Ein Thema von Sven M. · begonnen am 20. Okt 2008 · letzter Beitrag vom 20. Okt 2008
Antwort Antwort
Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#1

Verhalten der TTimer-Komponente während der Laufzeit...

  Alt 20. Okt 2008, 16:48
Hallo DP'ler...

Mal wieder eine Frage an euch:
Wie verhält sich die TTimer-Komponente, wenn ich das Intervall zur Laufzeit ändere? Hintergrund ist, dass ich eine Autosave-Funktion in mein Programm einbauen möchte. Und das Intervall kann während der Timer läuft, geändert werden. Startet der Timer dann von vorne? Oder Zählt er weiter bis zu der neuen Intervall-Grenze? Und wie verhält sich der Timer, wenn das neue Intervall kleiner ist als der aktuelle Stand des Timers (nur bezogen auf den zweiten Fall, für den ersten natürlich nicht relevant)?


Besten Dank im Voraus,
Sven
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Verhalten der TTimer-Komponente während der Laufzeit...

  Alt 20. Okt 2008, 16:58
probier es doch einfach aus?!

mach einen timer (20 sek.) und lass eben den aktuellen zeitstempel in ein memo ausgeben. dann verkürzt du die zeit und schaust nach was dann passiert. daraus wirst du mir sicherheit auf die funktion schließen können.

ich würde behaupten -- womit ich mich aber weit aus dem fenster lehne -- dass der timer neu startet, da dies wahrscheinlich die logischste reaktion wäre.

[edit]
in der ExtCtrls steht das folgende:
Delphi-Quellcode:
procedure TTimer.SetInterval(Value: Cardinal);
begin
  if Value <> FInterval then
  begin
    FInterval := Value;
    UpdateTimer;
  end;
end;
{ ... }
procedure TTimer.UpdateTimer;
begin
  KillTimer(FWindowHandle, 1);
  if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then
    if SetTimer(FWindowHandle, 1, FInterval, nil) = 0 then
      raise EOutOfResources.Create(SNoTimers);
end;
ergo: neustart...
[/edit]
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 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