Seite 1 von 1

Re: ThisComponent.close() läßt OO abstürzen

Verfasst: Di, 22.09.2009 14:57
von Uschi
Sub OO_Beenden
Doc = ThisComponent
oDialog.endexecute()
Doc.store()
Doc = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(doc, ".uno:CloseDoc", "", 0, Array())
dispatcher.executeDispatch(doc, ".uno:CloseWin", "", 0, Array())
End Sub

Probiers mal damit

MFG USchi

Re: ThisComponent.close() läßt OO abstürzen

Verfasst: Di, 22.09.2009 16:23
von eBayer
Hallo Uschi,
das war dann doch etwas zuviel des Guten..... was Du vorgeschlagen hast, bezieht sich auf die gesamte Anwendung und schließt auch noch einen nicht vorhandenen Dialog.
Das folgende Makro wird von mir zum schließen benutzt und läuft zuverlässig - auch unter 3.1.1.
Gruß eBayer

Sub DocumentSchliessen ' wird vom PushButton "Ende" benutzt
Dim oDoc As Object, oDispatch As Object
oDoc = ThisComponent.CurrentController.Frame
oDispatch = createUnoService("com.sun.star.frame.DispatchHelper")
oDispatch.executeDispatch(oDoc, ".uno:CloseDoc", "", 0, Array())
End Sub

Re: ThisComponent.close() läßt OO abstürzen

Verfasst: Mi, 23.09.2009 11:43
von komma4
Ja, die gibt es.

Möchtest Du dann:

* automatisch Speichern?
* eine Nachfrage, ob gespeichert werden soll
* automatisch die Änderung(en) verwerfen?


Vielleicht suchst Du einfach nur ThisComponent.dispose() (das läuft hier [OOo 3.0.1/WinXPpro] ohne Absturz?): schliesst das aktuelle Anwendungsfenster, auch bei Änderungen, ohne Nachfrage und ohne das dispatcher-Gedöhns zu nutzen.