Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Befehl Reihenfolge


dorian_89 - Sa 11.02.06 22:37
Titel: Befehl Reihenfolge
Hi
Ich (Wir) habe (haben) ein Programm geschrieben, das in 'ner TPgrogressBox erst reinschreib wieviel prozent der felder man ausgefüllt hat und dann wie weit er mit bearbeiten ist (nur zur Schau, also dazuzählen und dann sleep, aber is lustig zum ansehn =) ), Davor is en Label, dessen Text entsprechend geändert. Das Dazuzählen in der TProgrssBox haben wir durch ne While-Schleife geregelt, und jetzt soll er davor natürlich den LabelText ändern, machts aber erst danach!

Wo ist da der Fehler?
Gibt es eine Reihenfolge, wie Delphi die Befehle ausführt?

Quelltext:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
  i:=0;
     PbAll.StepBy(-100);
     LbFortschritt.Caption:='Erstelle';

     while i<10 do
         begin
         inc(i);
         PbAll.StepBy(10);
         sleep(100);
         end;


     if i = 10
     then LbFortschritt.Caption:='Fertig!'
     else;


Schonmal vielen dank für eure Antworten
Dorian (& Kevin)


MrFox - Sa 11.02.06 22:49

Die Reihenfolge in der die Befehle ausgeführt werden ist von oben nach unten, von links nach rechts.

Füg mal nach der Zuweisung des Texts 'erstellen' an das Label die Quelltextzeile


Delphi-Quelltext
1:
Application.Processmessages                    


ein. Dann müsste es klappen.


dorian_89 - Sa 11.02.06 22:53

DANKE

es geht einwandfrei, auch wenn ich nich kapier warum er die while-Schleife vor allem Andern macht, auch wenn sie fast am Ende steht, aber mit Application.Processmessages kann ich in Zukunft arbeiten

thx

Dorian (& Kevin)


MrFox - So 12.02.06 13:38

Das liegt daran, dass die Schleife das Programm sozusagen lahmlegt. Also so krass Beschäftigt, dass der Anwendung keine Zeit mehr bleibt die Komponenten auf der Formularoberfläche zu zeichnen. Application.Processmessages gibt dem Programm explizit den Befehl die Schleife kurz anzuhalten und Aufgaben wie das zeichnen der Forumlaroberfläche zu erledigen.


dorian_89 - So 12.02.06 17:47

So was in der Art hatte ich mir gedacht, jetzt weis ichs thx

Dorian