![]() |
Eine Schleife Abbrechen....
wie kann ich wenn ich eine Schleife hab, selbige über eine checkbox beenden.
während die Schleife läuft reagiert ja auch alles auf der form nit, d.h. wenn ich die Checkbox drück passiert nüx, hab folgenden Lösungsansatz, funzt aba nit:
Delphi-Quellcode:
Form1.CheckBox1.Update;
if Form1.CheckBox1.Checked then Exit; |
Re: Eine Schleife Abbrechen....
Hallo,
wie wärs wenn du die ganze Schleife postest? Wenn du in deine Schleife:
Delphi-Quellcode:
einbaus, dann bleibt die Form (Benutzeroberfläche) nicht stecken, bzw. reagiert auf Button Klicks und so.....
Application.ProcessMessages;
|
Re: Eine Schleife Abbrechen....
Hi,
hier der Code:
Delphi-Quellcode:
procedure DoSomething;
var i: Integer; begin for i := 1 to 1000000000000000000000000000 do begin DoSomethingMore; Application.ProcessMessages; if CheckBox1.Checked then Break; end; end; |
Re: Eine Schleife Abbrechen....
Eine Schleife, die man abbrechen möchte ist niemals eine FOR-Schleife. Dafür gibt es REPEAT und WHILE. Und das 1000000000000000000000000000 bei einer Integervariable ist wohl auch nicht möglich.
Also...
Delphi-Quellcode:
oder noch besser...
procedure DoSomething;
begin repeat DoSomethingMore; Application.ProcessMessages; until CheckBox1.Checked; end;
Delphi-Quellcode:
procedure DoSomething;
begin while not CheckBox1.Checked do begin DoSomethingMore; Application.ProcessMessages; end; end; Gruss Thorsten |
Re: Eine Schleife Abbrechen....
Zitat:
Zitat:
|
Re: Eine Schleife Abbrechen....
Ich wollte aber eine For-schleife nehmen, weil die Schleife nur eine bestimmte Anzahl durchgegangen werden soll, aber eine Möglichkeit zum abbrechen haben soll. Also brauch ich ja wohl eine Forschleife oder bin ich jetzt vollkkommen blöd?
|
Re: Eine Schleife Abbrechen....
Hallo,
Zitat:
Delphi-Quellcode:
bzw.
C := 0;
while (C < 10) and (not CheckBox1.Checked) do begin TuIrgendwas; Application.ProcessMessages; Inc(C); end;
Delphi-Quellcode:
Hier läuft die Schleife zehn mal durch oder wird vorher abgebrochen.
C := 0;
repeat TuIrgendwas; Application.ProcessMessages; Inc(C); until (C = 10) or CheckBox1.Checked; Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz