Wechsel zwischen GUI und Hybrid

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Flymoon
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 23
Registriert: Fr, 02. Mär 2012 8:29

Wechsel zwischen GUI und Hybrid

Beitrag von Flymoon »

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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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

Beitrag von Tom »

Originelle Vorgehensweise. :wink:

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
Flymoon
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 23
Registriert: Fr, 02. Mär 2012 8:29

Re: Wechsel zwischen GUI und Hybrid

Beitrag von Flymoon »

Jupp hat funktioniert =D>
Danke :)
Benutzeravatar
Jan
Marvin
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

Beitrag von Jan »

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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

Beitrag von Tom »

Ob das immer benötigt wird sei dahingestellt
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.

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
Antworten