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]
