![]() |
Schleife stoppen!
Hallo zusammen,
wenn ich folgende Schleife laufen lasse
Delphi-Quellcode:
for i := 1 to 100000000000 do begin Status.Panles[0].Text := ' blablabla' + IntTOStr(i) + 'blabla'; end; friert mein Programm ein. ich möchte gerne die Schleife über einen Button stoppen können. Aber in der Zeit, in welcher die Schleife durchläuft, kann ich auf mein programm nicht zugreifen. Gruß Andreas |
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Erstmal ab nach Delphi dafür^^ |
Re: Schleife stoppen!
dann machst Du folgendes:
Delphi-Quellcode:
Wobei abort eine Boolean-Variable auf dem Formular ist, welche am Anfang false ist und durch den Button-Click auf true gesetzt wird.
for i := 1 to 100000000000 do
begin Status.Panles[0].Text := ' blablabla' + IntTOStr(i) + 'blabla'; Application.ProcessMessages(); if (abort) then break; end; Edit Nachtrag: Wichtig ist das Application.Processmessages, weil hierdrin dann der ButtonClick erst ausgeführt wird. Das ganze macht die Schleife aber extrem langsam. Vllt. bietet es sich also an, diese Abfrage nach einem Abbruch z.B. nur alle 100 oder nur alle 1000 Durchläufe zu machen. |
Re: Schleife stoppen!
Bedanke mich
|
Re: Schleife stoppen!
Hi
Warum benutzt du nicht die Repeat oder While -Schleife. Diese sind dafür ausgelegt, auch früher abgebrochen zu werden...
Delphi-Quellcode:
oder die andere Variante
.....
I:=0; // i vorbesetzen Repeat // Schleife wird mindestens 1mal durchlaufen .....yourCode.... Inc(i); // oder anders i:=i+1; Until (i = Zielwert) or Abbruchbedingung; // bis hierher und nicht weiter .....
Delphi-Quellcode:
......
i:=0; // i vorbesetzen While (i<=Zielwert) and Not Abbruchbedingung do // Schleife kann umgangen werden Begin // da Abbruchbedingung am Anfang steht ........ YourCode ........ Inc(i); // oder wieder i:=i+1; end; // bis hierher und nicht weiter ...... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 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