Hallo Matthias,

Matthias Uhl schrieb:
> Hallo Liste,
> ich sitze seit einiger Zeit an einem Problem bei der Makroprogrammierung 
> unter StarOffice BASIC.
> Und zwar m�chte ich gerne per Programmcode einen Seitenumbruch in ein 
> Textdokument einf�gen
> (Zeilen- und Absatzumbr�che (LINE_BREAK, PARAGRAPH_BREAK) k�nnen als 
> Steuerzeichen leicht
> erzeugt werden).

Hmm, das sind grunds�tzliche Fragen und gehen tiefer. Ja, du kannst
einen Seitenumbruch erzeugen, aber nicht so.

> Meine zweite Frage: Kann ich mit einem TextCursor zwischen Seiten bzw. 
> auf einer Seite navigieren (z.B.
> GotoEndOfPage oder GotoNextPage)?

Das ist die Problematik. By Writer musst du das System verstehen, und
entsprechend vorgehen.

Es gibt einmal das Textobjekt ansich, d.h. den Flie�text untergliedert
in Abs�tze. Dar�ber hinaus gibt es die Drawpage, die alle anderen
Objekte wie Grafiken, Rahmen, Formualarelemete etc beinhaltet. Das ganze
nennt man dann Modell. Normalerweise arbeitest du nur mit dem Modell,
das heisst, du manipuliertst die Objekte dort. Auch der oder die
Textcursor arbeiten direkt am Modell. Dieses jedoch kennt keine
Seitenumbr�che - Das Modell ist unabh�ngig von der Ansicht. Also: Hier
kannst du auch keine Seitenumbr�che einf�gen.
Jedes Dokument (und somit jedes Modell) hat nun einen Controller, der
die Steruerung der Ansicht �bernimmt - die sogenannte Viewansicht. Erst
dieser Controller plaziert Zeilen- und Seitenumbr�che, nur der wertet
die Daten des Modells aus (z.B. Seitengr��e etc) und passt alles
zusammen. So, nun kannst du auch noch die View-Ansicht des Dokumentes
bearbeiten - z.B. mit dem Viewcursor. Und der kennt Zeilenumbr�che,
Seitenumbr�che und die exakte Plazierung der Objekte (in Pixeln bzw.
100stel mm).
Es w�rde jetzt zu weit f�hren, die Details der API darzulegen, aber zu
deinem Problem:
Ein Seitenumbruch wird im Writer definiert durch den Beginn einer neuen
Seitenvorlage. Also: Weise dem betroffenen Absatz (ein Textdokument
besteht aus Abs�tzen) einfach eine neue Seitenvorlage zu, schon ist ein
Seitenumbruch eingef�gt.
Wichtig: Der Eigenschaft PageDescName muss eine neuen Seitenvorlage
zugewiesen werden (es kann auch die gleiche sein wie vorher, nur eben
zuweisen!), das �ndern des Namens alleine reicht nicht.

Beispiel: Nach dem letzten Absatz wird ein Seitenumbruch eingef�gt:

oEnum = thisComponent.Text.createEnumeration() 'die Abs�tze
Do while oEnum.hasMoreElements()
  oAbsatz = oEnum.nextElement
loop
REM Ich nutze die gleiche Seitenvorlage
oAbsatz.PageDescName = oAbsatz.PageStyleName

Denk dran: Auch Texttabellen geltenals Abs�tze und werden hier mitgez�hlt.

Ich hoffe, es hilft weiter,

viele Gr��e

Thomas

-- 
## Marketing deutschsprachiges Projekt
## http://de.openoffice.org  - www.openoffice.org
## Vorstand OpenOffice.org Deutschland e.V.
## Mitglieder willkommen: www.OOoDeV.org

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

Antwort per Email an