Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

Re: Open-Source-Alternative zum VCL-Timer

  Alt 12. Dez 2006, 21:20
Ich hab da ein kleines Problem mit der Anwendung des Timers
Also als Ersatz zum TTimer der VCL kann ich den nicht nehmen. Aufgrund der Idee dahinter, um genauer zu sein aufgrund Dieser Methode:
Delphi-Quellcode:
procedure TCoesterTimer.Run;
var
   NextTimerTime: Cardinal;
begin
   NextTimerTime := TimeGetTime + FInterval;
   while True do
   begin
      repeat
         Application.ProcessMessages;
         if Application.Terminated then
            Exit;
         Sleep(1);
      until NextTimerTime <= TimeGetTime;
      FOnTimer;
      Inc(NextTimerTime, FInterval);
   end;
end;
Am Ende siehts dann so aus, dass eine Funktion, die den Timer enabled, nicht zu Ende gefuehrt wird, bis die Applikation terminiert:
Delphi-Quellcode:
procedure TCoesterTimer.SetEnabled(Value: Boolean);
var
   OldInterval: Byte;
   OldOnTimer: TProcedure;
begin
//[...]
      if Value then
      begin
         FEnabled := Value;
         Run;
      end
//[...]

Zudem:
Delphi-Quellcode:
Self.Destroy;
Self := TCoesterTimer.Create;
Sowas ist schon ziemlich ....
Wenn du einen wirklichen Timer programmieren willst, helfen dir vllt. die MSDN-Library durchsuchenTimer Event Operations weiter

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat