[Delphi] Sleep Funktion

PatrickB

Well-known member
ID: 137508
L
24 April 2006
496
13
Hi,

ich hab ein kleines Problem.
Ich möchte eine Funktion ausführen bzw. einen Befehl und danach das Programm für 1 Sekunde einfrieren und dann soll eine weitere Funktion ausgeführt werden.
Hier mal der Codeschnipsel:

Code:
begin
    Edit2.Color:=clLime;
    Sleep(1000);
    Form1.Button1Click(TObject(1));
end

Bei mir wird jetzt aber zuerst die Sleep Funktion ausgeführt und dann die Farbe eingestellt und dann die Funktion Button1.Click ausgeführt. Es soll aber zuerst die Farbe annehmen, dann einfrieren und dann Button1.Click ausführen.
 
Du musst die Kontrolle an das Betriebssystem geben, damit dieses Zeit kriegt, den Button neu zu zeichnen.

In VB geht das mit DoEvents; wie's in Delphi aussieht, weiß ich nicht.
Vielleicht bringt dir der Post aber schon was :)
 
Ich teste mal kurz was, application.ProcessMessages;

Bei TCP und son Kram geht das damit, aber ob das beim normalen sleep funktioniert weiß ich grad nicht. Momentchen.

Edit:
PHP:
Edit2.Color:=clLime;
Application.ProcessMessages; //OS erlauben Edit2 umzuändern
Sleep(1000);
Button2.Click;

Funzt :)
 
Ich teste mal kurz was, application.ProcessMessages;

Bei TCP und son Kram geht das damit, aber ob das beim normalen sleep funktioniert weiß ich grad nicht. Momentchen.

Edit:
PHP:
Edit2.Color:=clLime;
Application.ProcessMessages; //OS erlauben Edit2 umzuändern
Sleep(1000);
Button2.Click;
Funzt :)


Juhu, juhu! Danke, klappt! :D