Toxitom hat geschrieben:Hey Vanished,
Was mache ich falsch?
Eigentlich nichts. Aber die Fehlermeldung sagt doch schon alles: Es gibt noch einen Prozess, der das Schliessen des Dokumnetes verhindert.
Das ist mir klar, aber welcher? Nochmal: Der einzige Unterschied in der Ausgangslage ist, dass der Dialog einmal aus der IDE aufgerufen wird (bei geöffnetem Dokument, versteht sich), beim anderen Mal aus der Symbolleiste der Anwendung (Tabelle).
Toxitom hat geschrieben:Eine Lösung auf die Entfernung ist schwer zu sagen, da ich die Gesamtumstände nicht kenne. Vielleicht reicht eine kurze Wartezeit nach oDialog.endexecute()
Hmmm, habe ich auch schon getestet. Wait 5000 hat jedenfalls nicht gereicht... Mehr noch, aus der IDE läßt sich das Dokument schliessen, ohne dass man vorher den Dialog beenden müßte, also ohne oDialog.endexecute() (wenn das auch keinen Sinn macht).
Toxitom hat geschrieben:soweit ich mich errinnere, liefert der auch einen Rückgabewert. Vielleicht diesen zunächst testen?
Wenn ich das versuche, bekomme ich nur eine leere Variable.
Toxitom hat geschrieben:Eine andere Variante könnte auch sein, dass "ThisComponent" nicht richtig ist! Wenn die Schaltfläche in einer Sysmbolleiste untergebracht ist, so dürfte sich "ThisComponent" möglicherweise dann auf diese beziehen -> Hol dir vorher das Dokumenten-Objekt als Frame und versuch es noch einmal:
Das habe ich versucht - ohne Erfolg. Der Fehler tritt übrigens auch dann auf, wenn der Dialog über Extras->Makros->Makro->Ausführen gestartet wird.
Hast Du vielleicht sonst noch eine Idee?
Viele Grüße,
Vanished
Edit: Zu Deiner Ergänzung: Wenn alleine das Dokument geöffnet ist (die IDE nicht), öffnet sich beim Auslösen der Dialogschaltfläche cb6 die IDE, zeigt die Fehlermeldung an und markiert die Zeile "oDoc = thisComponent.CurrentController.frame", egal ob endexecute() vorher ausgeführt wird oder nicht. Ich habe es auch schon mit einem oDok.dispose() versucht - erfolglos.