Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - abbrechen einer FOR - Schleife


zulu - Sa 31.05.03 11:41
Titel: abbrechen einer FOR - Schleife
hab folgende prob. : hab ein einfaches Prog geschrieben, das von der größeren zu kleinere runterzählt oder von der kleineren zur größeren hochzählt. wie kann ich die schleifen, während sie am zählen ist abbrechen/unterbrechen mithilfe eines "stop" buttons :?:

so sieht eine der schleifen aus :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
              for zaehler := zahl1 to zahl2 do
                begin
                  buffer := inttostr (zaehler);
                  pnlausgabe.caption := buffer;
                  pause (500)
                end;


hoffe jemand kann mir weiterhelfen !


w3seek - Sa 31.05.03 12:25

wozu gibts eine Hilfe?
Break;


matze - Sa 31.05.03 13:10

du solltest in der schleife noch ein application.processmessages; einbauen, damit dein programm auch wärend der schleife reagiert.


Delete - Sa 31.05.03 13:11

break ist nur der zweite Teil der Aktion. Der erste wäre eine globale Variable (bspw. vom BOOL-Typ), die durch den Stop-Button gesetzt und innerhalb der Schleife abgefragt wird.


zulu - Sa 31.05.03 15:45

thx habs mit ner BOOL variablen gemacht und mit break sieht jetzt so aus :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
if zahl1<zahl2 then
            begin
              for zaehler := zahl1 to zahl2 do
                begin
                  application.processMessages;
                  buffer := inttostr (zaehler);
                  pnlausgabe.caption := buffer;
                  pause (time);
                    if breakpoint then
                      begin
                        break;
                        pnlausgabe.caption := buffer;
                      end;


und als stopbutton :

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button4Click(Sender: TObject);
begin
  breakpoint := true;
end;


klap einwandfrei danke !