Timmi schrieb:
Hallo!

Weiß vielleicht jemand, wie man in einem Basic-Macro die
Spalteneinteilung für einen Rahmen ändert? Der folgende Code hat keinen
Effekt (produziert aber auch keine Fehlermeldung):

SUB aendern (rahmen AS OBJECT)
 DIM temp AS OBJECT
 temp = rahmen.TextColumns
 temp.ColumnCount = 5
END SUB

Du musst das Property "TextColumns" in den Rahmen zurückschreiben:

SUB aendern (rahmen AS OBJECT)
  temp = rahmen.TextColumns
  temp.ColumnCount = 5
  rahmen.TextColumns = temp     ' zurueckschreiben
END SUB

"temp" ist eine eigene Kopie des Properties "auf der Wiese", und keine Verknüpfung bzw. Referenz zu den Daten, die in "rahmen" stehen.

Außerdem müsste ich die Spalten verschieden groß einteilen, aber mit der
Datenstruktur komme ich nicht zurecht. Kann mir jemand weiterhelfen? Danke.

SUB aendern (rahmen AS OBJECT)
  temp = rahmen.TextColumns
  temp.ColumnCount = 5

  columns = temp.Columns
  columns( 0 ).Width = 2000
  columns( 1 ).Width = 5000
  columns( 4 ).Width = 3000
  temp.Columns = columns        ' zurueckschreiben

  rahmen.TextColumns = temp     ' zurueckschreiben
END SUB

"temp.Columns" oder auch "temp.getColumns()" liefert ein Array von "com.sun.star.text.TextColumn"-Objekten.
http://api.openoffice.org/docs/common/ref/com/sun/star/text/XTextColumns.html#getColumns
http://api.openoffice.org/docs/common/ref/com/sun/star/text/TextColumn.html

Die können direkt im Array manipuliert werden. Allerdings muss das gesamte Array nach "temp" zurückgeschrieben werden: "temp.Columns = columns" oder "temp.setColumns(columns)".



Ciao
Daniel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to