Hi.hi..
Nur ne kleine Anmerkung:
SetTimer( 0, nIDEvent, Interval, @OnTimer );
benötigt eine nIDEvent > 0 !!
Also hier einfach
SetTimer( 0, 1, Interval, @OnTimer );
Da mit dieser Minimalroutine eh nur ein Teimer erzeugt werden kann
Hier mal ein Minimalst-Beispiel, was auch komplett auf ein
Handle verzichtet
Delphi-Quellcode:
unit Unit1;
interface
uses
{Winapi.}Windows;
// Startet den Timer oder
// setzt ein neues Intervall für einen aktiven Timer
procedure TimerStart( Interval: UINT );
// Stoppt den Timer
procedure TimerStop;
implementation
var
nIDEvent: UINT_PTR = 0;
// Beim Start kein Timer, also nIDEvent = 0
procedure OnTimer;
begin
// hier irgendwas machen
end;
procedure TimerStop;
begin
if KillTimer( 0, nIDEvent )
then
nIDEvent := 0;
// Wenn der Timer entfernt werden konnte, dann nIDEvent wieder auf 0 setzen
end;
procedure TimerStart( Interval: UINT );
begin
nIDEvent := SetTimer( 0, nIDEvent, Interval, @OnTimer );
end;
end.