Hey,
kann mir jemand sagen, wie man eine rekursive Suche abbrechen kann?
Hier die Situation:
Ich habe im Programm eine globale Abbruchvariable deklariert, die zunächst
auf False gesetzt ist. Wenn ich die Funktion abbrechen möchte, setze ich diese
Variable über ein Button im Hauptprogramm auf True.
Innerhalb der 'Rekursiven Funktion' frage ich nun diese Variable ab und wenn
sie dann auf True steht, sollte die 'Rekursiven Funktion' DAUERHAFT verlassen
werden (Die Abfrage funkioniert, da die Abbruchvariablenänderung im
Hauptprogramm durch 'Application.DoEvents' in der 'Rekursiven Funktion'
ausgeführt und damit dort bemerkt wird!).
Nun ist es aber mit 'If Cancel = True then Return -1: Exit Function' innerhalb
der aufgerufenen Funktion nicht getan, da der Rücksprung ja nur in die selbe
(also in die aufrufende) Funktion erfolgt. Dies funktioniert auch dann nicht,
wenn das Abbruchkriterium ganz am Anfang der Funktion abgefragt wird, so
dass -wie ich dachte- sofort jeder Rücksprung wieder erneut ausgeführt wird.
Für einen Lösungsansatz wäre ich dankbar.
kann mir jemand sagen, wie man eine rekursive Suche abbrechen kann?
Hier die Situation:
Ich habe im Programm eine globale Abbruchvariable deklariert, die zunächst
auf False gesetzt ist. Wenn ich die Funktion abbrechen möchte, setze ich diese
Variable über ein Button im Hauptprogramm auf True.
Innerhalb der 'Rekursiven Funktion' frage ich nun diese Variable ab und wenn
sie dann auf True steht, sollte die 'Rekursiven Funktion' DAUERHAFT verlassen
werden (Die Abfrage funkioniert, da die Abbruchvariablenänderung im
Hauptprogramm durch 'Application.DoEvents' in der 'Rekursiven Funktion'
ausgeführt und damit dort bemerkt wird!).
Nun ist es aber mit 'If Cancel = True then Return -1: Exit Function' innerhalb
der aufgerufenen Funktion nicht getan, da der Rücksprung ja nur in die selbe
(also in die aufrufende) Funktion erfolgt. Dies funktioniert auch dann nicht,
wenn das Abbruchkriterium ganz am Anfang der Funktion abgefragt wird, so
dass -wie ich dachte- sofort jeder Rücksprung wieder erneut ausgeführt wird.
Für einen Lösungsansatz wäre ich dankbar.
mfG DHB
Ich meine:
Es sollten nur ernstzunehmende Beiträge eingestellt werden!
Beiträge, die nur deren Anzahl in die Höhe treiben sollen, stehlen Lesern deren Zeit und schenken nur Frust.
Wenn ein Autor sein Thema für erledigt hält, sollte er dies kurz als letzten Eintrag vermerken.
8) Leser wüssten dann, dass hier weitere Beiträge nicht mehr sinnvoll sind.
Ich meine:
Es sollten nur ernstzunehmende Beiträge eingestellt werden!
Beiträge, die nur deren Anzahl in die Höhe treiben sollen, stehlen Lesern deren Zeit und schenken nur Frust.
Wenn ein Autor sein Thema für erledigt hält, sollte er dies kurz als letzten Eintrag vermerken.
8) Leser wüssten dann, dass hier weitere Beiträge nicht mehr sinnvoll sind.