ich bearbeite ein größeres Writer-Dokument. Darin gibt es bestimmte Textstellen, zum Beispiel "[10]", die ich mit einem SearchDescriptor finden kann. Immer wenn eine solche Stelle gefunden worden ist, möchte ich das Makro dort anhalten und dem Benutzer ermöglichen, bestimmte Textstellen im Umfeld des Suchergebnisses mit der Maus zu markieren und diesen Stellen dann per Dialog bestimmte Eigenschaften (farbiger Text, Fettdruck et cetera) zuzuweisen. Dazu muss natürlich das Suchergebnis für den Benutzer sichtbar gemacht werden.
SearchDescriptor erzeugt so etwas wie einen TextCursor. Man kann auch die unter SearchDescriptor gefundene Textstelle in einen TextCursor umwandeln (ByRange). Dies ist aber für den Benutzer nicht sichtbar. Um zu erreichen, dass der Benutzer die gefundene Textstelle sieht, müsste diese Textstelle als ViewCursor eingelesen und so sichtbar gemacht werden. (Ich weiß nicht, ob ich mich verständlich ausdrücke.)
Der Code, mit dem ich arbeite:
Code: Alles auswählen
Function DialogTest
Dim oDoc1 as Object
Dim oSuche as Object, oSuchErg as Object, oTxtC as Object, oViewC as Object
Dim sStr as String, n as Integer, z as Integer, iInt as Integer
oDoc1 = ThisComponent
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = true
.SearchBackwards = false
.setSearchString("\[10\]")
End With
oSuchErg = oDoc1.findFirst(oSuche)
if not isNull(oSuchErg) then
oTxtC = oDoc1.text.createTextCursorByRange(oSuchErg)
else
MsgBox "Kein Suchergebnis!"
End if
oViewC = oDoc1.getCurrentController().getViewCursor()
oViewC.goRight(10, true)
End Function
Wie also kann ich einen ViewCursor erzeugen, der dem Benutzer bestimmte Textstellen anzeigt und ihm dort bestimmte Aktionen ermöglicht?
Vielleicht weiß jemand was? Vielleicht gibt es bereit einen Thread zu dem Thema, den ich nicht gefunden habe?
MfG Mr.Ed