wenn man dieses Delay Funktion von Hagen verwendet, geht die Synchronität verloren, gibts denn da eine Möglichkeit, das trotzdem zu realisieren?
http://www.delphipraxis.net/internal...elay+revisited
wenn man Button1 drückt, und gleich darauf Button2 ... dann kehrt Button1 erst zurück, NACHDEM Button2 fertig ist, obwohl in Button1 nur 1000 msec Verzögerung angegeben ist, gegenüber 10 Sekunden bei Button2 ....
Delphi-Quellcode:
procedure Delay(Milliseconds: Integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(Milliseconds);
while (Milliseconds > 0) and
(MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
Application.ProcessMessages;
if Application.Terminated then Exit;
Milliseconds := Tick - GetTickcount;
end;
finally
CloseHandle(Event);
end;
end;
//==============================================================================
procedure TForm2.Button1Click(Sender: TObject);
begin
sleepX(1000);
ShowMessage('Button1');
end;
//==============================================================================
procedure TForm2.Button2Click(Sender: TObject);
begin
sleepX(10000);
ShowMessage('Button2');
end;
//==============================================================================
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.