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

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Uschi
**
Beiträge: 24
Registriert: Mi, 05.08.2009 10:53

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

Beitrag 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
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

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

Beitrag 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
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

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

Beitrag 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.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten