Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Repeat anhalten (https://www.delphipraxis.net/106455-repeat-anhalten.html)

k4ni 11. Jan 2008 01:28


Repeat anhalten
 
Hoho ,

Es sieht so aus:
Da ist eine procedure (Button1Click) die eine repeat schleife enthält, doch ich möchte diese mit der procedure von Button2Click anhalten oder abbrechen am besten, ist das möglich? Denn da ist ein riesen macro "script" in der Button1Click procedure und in der zeit das abspielt kann man das programm schlecht beenden (geht einfach nicht :D).

Danke im vorraus

Dax 11. Jan 2008 01:44

Re: Repeat anhalten
 
Delphi-Quellcode:
TForm1 = class (* ...
  *)
  private
    fPause: Boolean;
  // ...
  end;

procedure TForm1.ButtonPauseClick//...
begin
  fPause := not fPause;
end;

procedure TForm1.ButtonMitDemRiesenCode// ...sollte eh nicht sein
//...
begin
  // ...
  repeat
    if fPause then
      Sleep(100)
    else
      // dein Code
    Application.ProcessMessages;
  end;
end;
Also einfach ein Flag setzen und pro Durchlauf prüfen.. Dabei das Application.ProcessMessages nicht vergessen.

jolan'tru

k4ni 11. Jan 2008 01:53

Re: Repeat anhalten
 
sowas ähnliches hab ich da schon rangesetzt, und zwar das:
Delphi-Quellcode:
...
repeat
if Odd(GetAsyncKeyState(Vk_F10)) then
Exit
else
....
Nur eine repeat schleife kann sehr lange dauern.

Gibt es anderen möglichkeiten?

Dax 11. Jan 2008 02:19

Re: Repeat anhalten
 
Verwende Threads.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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