Wie lese ich den Seitenbereich aus? (Writer)

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

suavito
***
Beiträge: 54
Registriert: So, 19.12.2004 13:12

Wie lese ich den Seitenbereich aus? (Writer)

Beitrag von suavito »

Ich verändere Absatzformate mit verschiedenen Makros, möchte aber, daß diese Makros nur im normalen Textbereich funktionieren und nicht in der Kopf- und Fußzeile und nur eingeschränkt im Fußnotenbereich.

Dazu muß ich diese Bereiche irgendwie erfragen.

Mit
Dim vCursor
Dim Textbereich As String

vCursor = ThisComponent.getCurrentController().getViewCursor()

Textbereich = vCursor.???
stelle ich fest, wo sich der sichtbare Cursor befindet, und dann... ja, was dann?

Falls jemand eine Lösung weiß, die die Position des Cursors irgendwie anders erfragt - habe nichts dagegen!


Wer weiß was?
suavito
***
Beiträge: 54
Registriert: So, 19.12.2004 13:12

Beitrag von suavito »

Ich kann die Frage auch anders formulieren, damit vielleicht klarer wird, daß sie durchaus wichtig ist:

Ich führe eine Suche im Text durch, habe dabei etwas gefunden und möchte in dem gefundenen Textbereich nun einen Cursor werkeln lassen.

Wenn das gefundene Textstück sich nun z. B. in einer Fußnote befindet, dann erzeugt die Erzeugung eines Cursors im Textbereich natürlich einen Fehler.

Vorher muß also immer die Frage: "Wo befindet sich x" stehen, wobei x der viewCursor sein kann oder ein search-Ergebnis.
zap
**
Beiträge: 20
Registriert: Di, 11.01.2005 13:18
Wohnort: Hannover

Beitrag von zap »

hi suavito,

das folgende Makro gibt aus, in welcher Art von Objekt der Cursor gerade steht:

Code: Alles auswählen

sub wobinich
  doc = thiscomponent
  vc = doc.currentController.viewCursor
  msgbox vc.Text.implementationName
  ' eines von:
  ' SwXBodyText (Haupttext)
  ' SwXHeadFootText (Fuss- oder Kopfzeile)
  ' SwXFootnote (Fussnote)
end sub
zap
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Die Lösung greift leider nicht immer.
Befindet sich der Cursor in einer Tabelle oder einem Rahmen wird swXCell oder swTextFrame gemeldet. Solche Objekte können aber auch in Kopf und Fusszeilen sein.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
zap
**
Beiträge: 20
Registriert: Di, 11.01.2005 13:18
Wohnort: Hannover

Beitrag von zap »

Das oben war von mir. Einloggen vergessen.

zap
suavito
***
Beiträge: 54
Registriert: So, 19.12.2004 13:12

Beitrag von suavito »

Meinen verspäteten Dank - die Forumssoftware hat mich nicht informiert, daß hier jemand geantwortet hat - für diese Tips.

Das hilft mir sehr weiter. Eventuelle Schwierigkeiten werde ich beim Testen schon herausfinden, ich hatte nur vorher überhaupt keine Idee, wie es gehen könnte.
Antworten