deutschsprachige FoxPro User Group
Forum View
Home
  
  onparentformbehaviorchange / Verhalten beim Verlassen der Ap- #21433 in section [744904]
Sec: (28) VFX deutsch
Von: Cyprian Kuschka
An: All
Am/Um: 23.04.2026 00:15:47 gelesen

Hallo zusammen,

ich bin auf ein Problem in `cDataFormVFXBase`, Methode `OnParentFormBehaviorChange`, gestoßen.

Dort steht folgender Code:

LPARAMETERS tnParentFormBehavior, llCallFromDestroy

IF !llCallFromDestroy
ThisForm.nParentFormBehavior = tnParentFormBehavior
DO CASE
CASE ThisForm.nParentFormBehavior = 1
ThisForm.oParentForm.Release()
CASE ThisForm.nParentFormBehavior = 2
ThisForm.oParentForm.Visible = .F.
ENDCASE
ELSE
IF ThisForm.oParentForm.Visible = .F.
ThisForm.oParentForm.Visible = .T.
ENDIF
ENDIF

Problem:
Wenn noch ein Child-Formular eines Child-Formulars geöffnet ist und der Benutzer in diesem Moment die gesamte Anwendung beendet, kommt es beim Schließen zu einem Laufzeitfehler.

Nach meinem Verständnis liegt das daran, dass während des globalen Shutdowns auf `ThisForm.oParentForm` bzw. auf dessen Eigenschaft `Visible` zugegriffen wird, obwohl das Parent-Form zu diesem Zeitpunkt möglicherweise bereits im Freigabe- oder Destroy-Prozess ist.

Die kritische Stelle scheint insbesondere dieser Block zu sein:

ELSE
IF ThisForm.oParentForm.Visible = .F.
ThisForm.oParentForm.Visible = .T.
ENDIF
ENDIF

Frage:
Gibt es dafür in VFX eine saubere Lösung oder einen etablierten Weg, diesen Fehler beim Beenden der Anwendung abzufangen bzw. zu vermeiden?

Ich denke an eine zusätzliche Prüfung, ob `oParentForm` überhaupt noch gültig/verfügbar ist, bevor darauf zugegriffen wird.

Hat jemand dieses Verhalten schon einmal gehabt oder gelöst?



Viele Grüße

Cyprian



Cyprian Kuschka   23.04.2026 00:15
Uwe Habermann  23.04.2026 12:03
Cyprian Kuschka  23.04.2026 16:13
  
zurück zum Forum