Hallo, hätte mal wieder eine Frage
Aus unsererem kombinierten Hybrid-Modus möchten wir eine reine
GUI Anwendung starten.
Eine Editiermaske mit
oDlg := XbpDialog():new( AppDesktop(), , {-4,26}, aSize, , .F.)
und ein Pull-Down- Menue mit
oMenu := XbpMenu():new( oMenuBar ).
Um wieder in den kombinierten Modus zurückzukehren beenden wir die GUI mit
oDlg:destroy()
und
oMenu:destroy().
oDlg läßt sich korrekt schließen. oMenu leider nicht.
Je nach Reihenfolge der Befehle bekommen wir entweder die Fehlermeldung
Falscher Objekt Status
Operation: destroy
oder das Pull-Down Menue wird zwar deaktiviert aber nicht gelöscht. Mit anschließender
Fehlermeldung im Hybrid-Modus.
Konkret gesagt wir kommen von der reinen GUI nicht zurück in den Hybrid Modus...Fenster1-4 im Programm sind im Hybrid und Seite 5 als reine GUI...wir kommen aber von Seite 5 nicht zurück auf Seite 4 ohne Fehlermeldung(wie oben beschreiben)Was kann da die Ursache sein?
Könnt ihr mir da weiterhelfen?
Gruß
Flymoon
Wechsel zwischen GUI und Hybrid
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Wechsel zwischen GUI und Hybrid
Originelle Vorgehensweise.
oDialog:Destroy() sollte das Menü mitzerstören, aber es gibt möglicherweise Abhängigkeiten, die das verhindern. Was geschieht, wenn Du nach dem oDialog:Destroy() noch ein oMenu := NIL einbaust?
oDialog:Destroy() sollte das Menü mitzerstören, aber es gibt möglicherweise Abhängigkeiten, die das verhindern. Was geschieht, wenn Du nach dem oDialog:Destroy() noch ein oMenu := NIL einbaust?
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wechsel zwischen GUI und Hybrid
Nur so nebenbei: Ich habe mir vor einiger Zeit angewöhnt, nach einem oXbp:destroy() immer auch sofort ein oXbp := NIL zu machen. Ob das immer benötigt wird sei dahingestellt, aber sicherer ist in meinen Augen.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Wechsel zwischen GUI und Hybrid
Eigentlich wird es nicht benötigt, aber wenn man mit nicht ganz sauberen Referenzen arbeitet oder LOCALs und PRIVATEs versehentlich mischt, kann es erforderlich sein - wie im vorliegenden Fall. Aber dieses NILen von Objekten kann auch nach hinten losgehen: DelColumn() beispielsweise entfernt zwar eine XbpColumn aus einem Browse-Objekt, löscht diese jedoch (aus guten Gründen) nicht - man kann diese Spalte jederzeit auch wieder einfügen, etwa bei Browses, die zwischen Monaten hin- und herspringen und dann fallweise keinen 31. Tag anzeigen. NILt man diese Column-Objekte, stirbt das Browse - natürlich - beim abermaligen AddColumn(), insofern dort das zuvor mit DelColumn() entfernte Spaltenobjekt referenziert wird.Ob das immer benötigt wird sei dahingestellt
Es sollte eine Ursache haben, dass das Menüobjekt nicht verschwindet, wenn man den Parent zerstört. Immerhin funktioniert es jetzt ja offenbar.
Herzlich,
Tom
Tom