Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Abbruch einer Rekursion bei Tastendruck


Gausi - Do 28.11.02 13:40
Titel: Abbruch einer Rekursion bei Tastendruck
Ich schreibe an einem Programm, dass eine rekursive Prozedur verwendet. Ich würde gerne per Tastendruck die Rekursion abbrechen können, wenn die Berechnung zu lange dauert.
Unter TurboPascal ging das ungefähr mit

Quelltext
1:
 if keypressed then Rekursionweitermachen:=false;                    

wobei die Variable Rekursionweitermachen vor jedem Rekursiven Aufruf überprüft wird.
Mit Delphi krieg ich das irgendwie nich hin.


Udontknow - Do 28.11.02 14:12

Hi!

Du musst innerhalb deiner Rekursion den Befehl "Application.ProcessMessages" aufrufen, damit die Botschaftsbehandlung währenddessen erfolgt. Da solltest du aber dann darauf achten, daß der Benutzer die Rekursion kein zweites Mal z.B durch einen ButtonClick starten kann, während der Computer noch am arbeiten ist.

Cu, :)
Udontknow


Gausi - Do 28.11.02 14:30

Danke für die schnelle Antwort. Das ist genau das, was ich brauchte.
Jetzt muss ich nur den Button, der die Rekursion startet, zu Beginn derselben "disablen" und beim Abruch-Button Enabled auf True setzen.. Aber das ist ja kein Problem.