Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#24

Re: [nonVCL] Screensaver mit Preview (Template)

  Alt 8. Mai 2007, 16:05
Ich nehme abhängig vom Modus (Vorschau oder Schoner) zwei verschiedene Nachrichtenschleifen:

Delphi-Quellcode:
If (Mode<>mPreview) Then Begin // nur im Schonermodus mit voller Leistung
  While Not(Beenden) Do Begin
   While PeekMessage(Message,0,0,0,PM_REMOVE) Do Begin
    TranslateMessage(Message);
    DispatchMessage(Message);
   End;
   Render; // rendern, sobald alles andere abgearbeitet ist - "OnIdle"
  End;
 End
 Else Begin // Timer für Vorschaumodus
  Timer := SetTimer(hWnd,0,10,Nil);
  Try
   While GetMessage(Message,0,0,0) Do begin
    TranslateMessage(Message);
    DispatchMessage(Message);
   End;
  Finally
   KillTimer(hWnd,Timer);
  End;
 End;

...

//In WndProc:

WM_TIMER: Render; // Rendern bei "OnTimer"

WM_CLOSE: ...
          Beenden := True;
          ...
Gruß, teebee
  Mit Zitat antworten Zitat