AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Schleife Abbrechen....

Ein Thema von Green · begonnen am 25. Jun 2006 · letzter Beitrag vom 26. Jun 2006
Antwort Antwort
Green

Registriert seit: 11. Jun 2006
156 Beiträge
 
#1

Eine Schleife Abbrechen....

  Alt 25. Jun 2006, 23:56
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;
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#2

Re: Eine Schleife Abbrechen....

  Alt 25. Jun 2006, 23:59
Hallo,

wie wärs wenn du die ganze Schleife postest?

Wenn du in deine Schleife:

Application.ProcessMessages; einbaus, dann bleibt die Form (Benutzeroberfläche) nicht stecken, bzw. reagiert auf Button Klicks und so.....
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Eine Schleife Abbrechen....

  Alt 26. Jun 2006, 00:06
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;
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Eine Schleife Abbrechen....

  Alt 26. Jun 2006, 00:11
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:
procedure DoSomething;
begin
  repeat
    DoSomethingMore;
    Application.ProcessMessages;
  until CheckBox1.Checked;
end;
oder noch besser...

Delphi-Quellcode:
procedure DoSomething;
begin
  while not CheckBox1.Checked do begin
    DoSomethingMore;
    Application.ProcessMessages;
  end;
end;

Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Eine Schleife Abbrechen....

  Alt 26. Jun 2006, 00:17
Zitat von omata:
Eine Schleife, die man abbrechen möchte ist niemals eine FOR-Schleife. Dafür gibt es REPEAT und WHILE.
Gutes Argument.

Zitat:
Und das 1000000000000000000000000000 bei einer Integervariable ist wohl auch nicht möglich.
War wohl nur ein Beispiel.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Green

Registriert seit: 11. Jun 2006
156 Beiträge
 
#6

Re: Eine Schleife Abbrechen....

  Alt 26. Jun 2006, 09:36
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?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Eine Schleife Abbrechen....

  Alt 26. Jun 2006, 09:44
Hallo,
Zitat von Green:
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?
Sowas kann man immer anders lösen. Ich bin zwar kein Freund von "Break ist böse", aber hier mal ein Ansatz:
Delphi-Quellcode:
C := 0;
while (C < 10) and (not CheckBox1.Checked) do
begin
  TuIrgendwas;
  Application.ProcessMessages;
  Inc(C);
end;
bzw.
Delphi-Quellcode:
C := 0;
repeat
  TuIrgendwas;
  Application.ProcessMessages;
  Inc(C);
until (C = 10) or CheckBox1.Checked;
Hier läuft die Schleife zehn mal durch oder wird vorher abgebrochen.

Gruß
xaromz
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz