von Colster » Do, 16.08.2012 12:07
Ich habe jetzt eine Lösung gefunden, vielleicht kann es jemand anders auch gebrauchen. Dieser Codeschnipsel läuft in einem Writer-Dokument, in dem ein Rahmen (Rahmen1, so heißt automatisch der erste Rahmen) erstellt worden ist. Damit das verändern der Zielposition einen Effekt hat, muss der Rahmen an der Seite oder am Absatz verankert werden.
Von diesem Rahmen werden dann alle Eigenschaften exakt kopiert, am Schluss die Koordinaten verändert und dann wieder eingefügt.
Ich hatte angenommen, dass die Eigenschaften, die auf READONLY stehen nicht geschrieben werden können, stimmt aber nicht. Weiß das vielleicht jemand, was das READONLY besagt? In der API steht, dass diese Eigenschaften schreibgeschützt sind ...
Mit Gruß
Colster
Code: Alles auswählen
Sub Main
dim oProps() as Object
oDoc = thiscomponent
oText = oDoc.text
oCrs = oText.CreateTextCursor()
oFrame = oDoc.getTextFrames().getByName("Rahmen1")
oFrame1 = oDoc.createInstance("com.sun.star.text.TextFrame")
oPSI = oFrame.getPropertySetInfo()
oProps() = oPSI.getProperties()
MsgBox cstr(com.sun.star.beans.PropertyAttribute.READONLY)
For i = 0 to ubound(oProps())
' MsgBox oProps(i).Name + " " + cstr(oProps(i).attributes )
'if oProps(i).attributes And com.sun.star.beans.PropertyAttribute.READONLY = 0 then
oFrame1.setPropertyValue(oProps(i).Name,oFrame.getPropertyValue(oProps(i).Name))
'Endif
Next i
oFrame1.HoriOrientPosition = 5000
oFrame1.VertOrientPosition = 7000
oDoc.Text.insertTextContent(oCrs,oFrame1,False)
End Sub
Ich habe jetzt eine Lösung gefunden, vielleicht kann es jemand anders auch gebrauchen. Dieser Codeschnipsel läuft in einem Writer-Dokument, in dem ein Rahmen (Rahmen1, so heißt automatisch der erste Rahmen) erstellt worden ist. Damit das verändern der Zielposition einen Effekt hat, muss der Rahmen an der Seite oder am Absatz verankert werden.
Von diesem Rahmen werden dann alle Eigenschaften exakt kopiert, am Schluss die Koordinaten verändert und dann wieder eingefügt.
Ich hatte angenommen, dass die Eigenschaften, die auf READONLY stehen nicht geschrieben werden können, stimmt aber nicht. Weiß das vielleicht jemand, was das READONLY besagt? In der API steht, dass diese Eigenschaften schreibgeschützt sind ... :?
Mit Gruß
Colster
[code]Sub Main
dim oProps() as Object
oDoc = thiscomponent
oText = oDoc.text
oCrs = oText.CreateTextCursor()
oFrame = oDoc.getTextFrames().getByName("Rahmen1")
oFrame1 = oDoc.createInstance("com.sun.star.text.TextFrame")
oPSI = oFrame.getPropertySetInfo()
oProps() = oPSI.getProperties()
MsgBox cstr(com.sun.star.beans.PropertyAttribute.READONLY)
For i = 0 to ubound(oProps())
' MsgBox oProps(i).Name + " " + cstr(oProps(i).attributes )
'if oProps(i).attributes And com.sun.star.beans.PropertyAttribute.READONLY = 0 then
oFrame1.setPropertyValue(oProps(i).Name,oFrame.getPropertyValue(oProps(i).Name))
'Endif
Next i
oFrame1.HoriOrientPosition = 5000
oFrame1.VertOrientPosition = 7000
oDoc.Text.insertTextContent(oCrs,oFrame1,False)
End Sub[/code]