Einzelnen Beitrag anzeigen

neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#6

Re: Schreiben einer kleinen 3D-Engine - Timer

  Alt 23. Mär 2004, 18:49
Das war natürlich nur eine Skizze.

Für den kompletten Timer braucht man schon etwas mehr Code.

Ich wollte dir da nur ein paar Stichworte gegeben, die die Idee formen könnten.

Na gut, etwas mehr:

Delphi-Quellcode:
type
  TExTimer = class (TThread)
  private
    fOnTimer : TNotifyEvent;

    hClose : Cardinal;
  protected
    procedure Execute; override;
  public

Hinweis: in Destroy muss der Thread über das hClose-Event beendet werden!!!

    property OnTimer : TNotifyEvent read fOnTimer write fOnTimer;
  end;

procedure TExTimer.Execute;
var hTimer : Cardinal;
    lQuit : Boolean;
    aObjs : array [0..1] of Cardinal;
begin
  hClose := CreateEvent( ??? ); // Event damit der Thread sauber beendet werden kann
  hTimer := CreateWaitableTimer(nil, false, nil);
  SetWaitableTimer(hTimer, ???);
  
  aObjs[0] := hTimer;
  aObjs[1] := hClose;

  lQuit := false;
  repeat
    case WaitForMultipleObjects(2, @aObjs, false, INFINITE, false) of
         WAIT_OBJECT_0:
           if Assigned(fOnTimer) then
              fOnTimer(Self);
         WAIT_OBJECT_0 + 1:
           lQuit := true;
         else
            // Fehler
    end;
    end;
  until not lQuit;

  CloseHandle(hTimer);
end;
Das Teil ist noch nicht FERTIG!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat