Forum: Programmieren allgemein
by sx2008,
25. Feb 2012
Du darfst die Schleife von 1 bis 1000 nicht einfach so übernehmen; das war nur ein Beispiel.
Du musst in deinem Code immer wieder die Funktion IsRunning aufrufen.
Wenn du das zu oft tust, wird der Ablauf langsamer als nötig.
Zu selten und die Reaktion auf Stop ist verzögert.
Ein gesundes Mittelmaß ist nötig.
var ovElements: OleVariant; i: Integer;
begin
ovElements :=...
Forum: Programmieren allgemein
by sx2008,
25. Feb 2012
Eigentlich ist das Problem ganz einfach zu lösen.
Man braucht dazu ein Flag, einen Start- und einen Stopbutton und zwei kleine Hilfsfunktionen:
TForm1=class(TForm)
pivate
FRunning : Boolean; // =True wenn Arbeitsprocedure läuft
procedure DoWork; // die Arbeitsprocedure; kann längere Zeit laufen
protected
function IsRunning:Boolean;