| |
| |
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
|
|
|
|