AGB  ·  Datenschutz  ·  Impressum  







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

Schleifen und break;

Ein Thema von Asatru · begonnen am 10. Okt 2007 · letzter Beitrag vom 10. Okt 2007
Antwort Antwort
Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#1

Schleifen und break;

  Alt 10. Okt 2007, 18:45
Ich habe eine schleife die sich x mal wiederholt, möchte ich nun mein programm beenden mit Close; versucht die Anwendung die Schleifenanzahl noch komplett zu beenden! Dies ist ja nicht der Sinn der Sache, da ich ja aus der schleife rausmöchte und beenden!

Soweit wie ich weis läuft das alles über das break;

Wie sieht es nun aus, wenn ich via einen Button nur aus der Schleife möchte?

Code:
procedure TForm1.Beenden1Click(Sender: TObject);
begin
break; //Hm funzt leider icht
end;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Schleifen und break;

  Alt 10. Okt 2007, 18:57
Hallo,

das müsstest du so in der Art lösen:

Delphi-Quellcode:
var Abbruch: Boolean = false;

// ...

// Beispiel: for-Schleife
// Bei repeat/while ging es direkt im Schleifenkopf/-fuß
for i := 1 to 10000 do
begin
  if Abbruch then
    break;
end;

// ...

// Button OnClick bzw. OnClose o.ä.
Abbruch := true;
  Mit Zitat antworten Zitat
Astartes
(Gast)

n/a Beiträge
 
#3

Re: Schleifen und break;

  Alt 10. Okt 2007, 18:59
Hi,

Tipp: Exit ist zum Verlassen von Proceduren und Funktionen!

Mfg Tom
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

Re: Schleifen und break;

  Alt 10. Okt 2007, 19:00
Zitat von Matze:
Delphi-Quellcode:
var Abbruch: Boolean = false;

// ...

// Beispiel: for-Schleife
// Bei repeat/while ging es direkt im Schleifenkopf/-fuß
for i := 1 to 10000 do
begin
  if Abbruch then
    break;
end;

// ...

// Button OnClick bzw. OnClose o.ä.
Abbruch := true;
Da müsstest Du aber IMHO noch ein Application.ProcessMessages einbauen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Schleifen und break;

  Alt 10. Okt 2007, 19:12
Hi,

wenn es ums Beenden geht:
Delphi-Quellcode:
for i := 1 to 10000 do
begin
  DoSomethingWith(i);

  Application.ProcessMessages;
  if Application.Terminated then
    break;
end;
Zum Abbruch wären möglich:
break - Schleife verlassen
exit - procedure / function verlassen
abort - mehrere proceduren / functionen auf einmal verlassen

In allen drei Fällen wird eventueller Code zwischen finally und end noch ausgeführt.

Bei Abort ist es wichtig, dass keine try-except-Blöcke vorkommen, welche EAbort behandeln, ohne sie erneut auszulösen. (Einer der Gründe, weshalb man bei try..except..end möglichst on EConvertError do ... verwenden sollte).

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#6

Re: Schleifen und break;

  Alt 10. Okt 2007, 19:46
Vielen Dank für eure Hilfe, werds mal antesten!


Mit freundlichen Grüßen
  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 13:54 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