Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#10

Re: Delay ja aber wie in DLL ?

  Alt 1. Feb 2007, 10:46
Zitat von marabu:
Hallo,

Emil will wahrscheinlich gar keine Nachrichten in der DLL verarbeiten, sondern nur ein Delay einbauen - und dabei soll die Nachrichten-Warteschlange vom main thread weiter bedient werden. Das kann seine Tücken haben, aber eine solche Warteschleife ist natürlich auch ohne die Unit Forms möglich:

Delphi-Quellcode:
procedure Delay(ticks: Cardinal);
var
  Msg: TMsg;
  tc: Cardinal;
begin
  tc := GetTickCount;
  while (GetTickCount - tc) < ticks do
    if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin
      TranslateMessage(Msg);
      DispatchMessage(Msg);
    end;
end;
Getippt und nicht getestet. So werden alle Nachrichten weiterverarbeitet - man könnte das einschränken. Wenn überhaupt keine Nachrichten verarbeitet werden sollen, dann kann man gleich Sleep() nehmen.

Freundliche Grüße
JA genau! 100% erfasst.
Werde es damit mal versuchen.

Danke gruss Emil
  Mit Zitat antworten Zitat