ViewCursor in einem TextShape

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

Moderator: Moderatoren

ubsch
Beiträge: 4
Registriert: So, 25.02.2007 15:03

ViewCursor in einem TextShape

Beitrag von ubsch »

Ich möchte in einem TextShape (in Writer) ein Wort unterstreichen. Wie komme ich zu dem ViewCursor in dem TextShape (nach Doppelclick sichtbar)?

Code: Alles auswählen

ThisComponent.getCurrentController.getViewCursor
gibt einen TextViewCursor zurück. Versuche ich aber, auf Textmethoden zuzugreifen (z.B. getText, getString,...) kommt eine Fehlermeldung "no text selection". Der TextViewCursor bezieht sich offensichtlich auf das TextShape und nicht auf dessen Inhalt.

PS: Kann man in BASIC zwischen den Ansichten eines TextShapes (nach Click, nach Doppelclick) wechseln?
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Ubsch,
gibt einen TextViewCursor zurück.
Das gibt es nicht! OOo unterscheidet zwischen einem Text-Cursor (nicht sichtbar) und dem View-Cursor (sichtbar, das blingende Ding im Dokument).
Deine Codezeile liefert den View-Cursor zurück und der bezieht sich auf den Textbody. Dein Shape jedoch ist Teil der Drawpage und - wenn aktiviert - nicht Inhalt deines Viewcursors. Hier musst du anders vorgehen.
Du brauchst zuerst das aktuelle Shape (muss man leider über eine Schleife und dann am besten über den Namen auslesen) dieses hat dann die gewünschten Eigenschaften (z.B. ein Objekt "Text", in dem die Texte verwaltet werden) Mit diesem Objekt kjannst du dann einen Textcursor erstellen und die gewünschten Formatierungen vornehmen.

Die größte Problematik ist eigentlich das "Erkennen, wo ich denn eigentlich bin...". Das geht auf der Drawpage leider nur über die Koordinaten - mit allen Schwierigkeiten.

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
ubsch
Beiträge: 4
Registriert: So, 25.02.2007 15:03

Beitrag von ubsch »

Hallo Thomas,
vielen Dank für die Antwort. Es ging genau um das "Erkennen, wo ich eigentlich bin". OOo verhält sich ja innerhalb des TextShape genau wie im Textbody (Text markieren, formatieren, etc.). Daher bin ich davon ausgegangen, dass der dort sichtbare ViewCursor ähnlich wie im Textbody zu ermitteln ist. Vermutlich geschieht das programm-intern auch, wird aber nicht durch die API nach "außen" weitergegeben. So werde ich also mit der DrawPage arbeiten müssen. Vermutlich ist auch der zweite Teil meiner Frage nicht durch die API zugänglich:
Kann man in BASIC zwischen den Ansichten eines TextShapes (nach Click, nach Doppelclick) wechseln?
Oder doch?

ubsch
Antworten