Wie kann ich aus einer laufenden Schleife (For Next) aussteigen, indem ich einen Button ("Stop"-ButtonGadget) klicke?
Ich habe ins Hauptprogramm folgendes geschrieben:
Code: Alles auswählen
Repeat
pgrlauf = Window_0_Events(WaitWindowEvent())
Until pgrlauf = #False
End
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
...
Case btmStop
StoppBerechnung(EventType())
...
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
Code: Alles auswählen
btmStop = ButtonGadget(#PB_Any, 20, 60, 40, 20, "Stop")
GadgetToolTip(btmStop, "Stoppt die Berechnung")
Code: Alles auswählen
Procedure StoppBerechnung(EventType)
Anhalten = 1
EndProcedure
Code: Alles auswählen
If Anhalten = 1
Anhalten = 0
StatusBarText(0, 0, "Berechnung abgebrochen")
Break
EndIf
Das Programm meldet dann nur "Keine Rückmeldung" und rechet im Hintergrund weiter.