24. maj 2000 - 10:09Der er
2 kommentarer og 1 løsning
Timer til Tracker
Er der nogle af jeg kloge hoveder der kan fortælle mig hvordan man laver en timer gerne en der kan klare op til 80 ticks i sek da jeg er i gang med af lave en Ft,mod tracker
procedure TTimerThread.Execute; begin repeat // wait for time elapse if WaitForSingleObject(FStop, FInterval) = WAIT_TIMEOUT then // if time elapsed run user-event Synchronize(FOwner.DoTimer); until Terminated;
// Delete event object CloseHandle(FStop); end;
{ TThreadedTimer }
constructor TThreadedTimer.Create(AOwner: TComponent); begin inherited Create(AOwner);
destructor TThreadedTimer.Destroy; begin // Destroy thread // signal thread to terminate FTimerThread.Terminate; SetEvent(FTimerThread.FStop); // resume if stopped if FTimerThread.Suspended then FTimerThread.Resume; // wait and free FTimerThread.WaitFor; FTimerThread.Free;
inherited Destroy; end;
procedure TThreadedTimer.DoTimer; begin if Assigned(FOnTimer) then FOnTimer(self); end;
procedure TThreadedTimer.SetEnabled(Value: Boolean); begin if Value <> FEnabled then begin FEnabled := Value;
if FEnabled then begin // When enabled resume thread if FTimerThread.FInterval > 0 then begin SetEvent(FTimerThread.FStop); FTimerThread.Resume; end; end else // suspend thread FTimerThread.Suspend; end; end;
function TThreadedTimer.GetInterval: Word; begin Result := FTimerThread.FInterval; end;
procedure TThreadedTimer.SetInterval(Value: Word); begin if Value <> FTimerThread.FInterval then begin Enabled := False; FTimerThread.FInterval := Value; end; end;
function TThreadedTimer.GetThreadPriority: TThreadPriority; begin Result := FTimerThread.Priority; end;
procedure TThreadedTimer.SetThreadPriority(Value: TThreadPriority); begin FTimerThread.Priority := Value; end;
procedure Register; begin RegisterComponents('System', [TThreadedTimer]); end;
Måske du så vil være så filnk at akseptere mit svar :-) !?!?\
Jens B
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.