Hallo balu,
ich habe auf den Stickie insofern verzichtet, als dass ich immer noch glaube meinen Augen trauen zu können. Ich war bis März zurück und habe meinen alten Thread trotz geputzter Brille nicht ausmachen können.
Der Code sieht so aus; alter wie aufgezeichneter sind identisch (bis auf die REM-Zeile):
Code: Alles auswählen
sub SpeichernUndPOS1
rem Konkret: POS1, Space, BackSpase, Save - um Position im Text festzuschreiben
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = " "
dispatcher.executeDispatch(document, ".uno:GoToStartOfLine", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
end sub
Meiner Auffassung nach sollte ein aufgezeichneter Code, wenn er auch wie sattsam bekannt selten von Eleganz zeugt, zumindest in sich korrekt sein und keine fehlenden Deklarationen aufweisen. Da der Code zuvor ja funktionierte erdreiste ich mich mal zu behaupten, dass er in Ordnung ist und dass der Fehler in besagtem LibreOffice 3.4x zu finden sein muss, denn mit 3.3 tat er noch.
Insofern kreise auch ich um die Idee mir aus 3.3 etwas auszuborgen was das Problem löst.
Oder man kann mir alternativen Code nennen der mir an der Cursorposition ein Zeichen schreibt/tippt, bzw. etwas das im Zustand wo der Cursor gerade ist etwas tut das das Dokument so ändert, dass sich effektiv nichts ändert, wohl aber eben für den Speichervorgang eine Änderung erfolgte.
Grüße,
Eric