von zap » Sa, 09.07.2005 15:44
Hi MKmitta,
ich hab mal ein bisschen herumexperimentiert:
Code: Alles auswählen
sub Stichwoerter
dim verzeichnisse
dim verzeichnis_namen
doc = ThisComponent
verzeichnisse = doc.getDocumentIndexes
verzeichnis_namen = verzeichnisse.getElementNames()
' alle Verzeichnisse anzeigen lassen
msgbox Join(verzeichnis_namen, CHR$(10))
' ein Verzeichnis ist eine Sammlung von Absaetzen
' wird also durch ein Textintervall beschrieben
' mal den Hintergrund auf gruen setzen
verzeichnisse.getByIndex(0).anchor.charbackcolor = RGB(0,255,0)
Dim s as String
Dim i as integer
' durch das Verzeichnis selber laufen. Leider sind die eintraege selber
' nur Text, a
AbsatzEnum = verzeichnisse.getByIndex(0).Anchor.CreateEnumeration
do while AbsatzEnum.hasmoreElements()
Absatz = AbsatzEnum.nextElement()
WortEnum = Absatz.CreateEnumeration()
i = i+1
s = s & "Absatz " & CStr(i) &"---------" & CHR$(10)
do while WortEnum.hasmoreElements()
Wort = WortEnum.nextElement()
s = s & wort.TextPortionType & CHR$(10)
loop
loop
msgbox s
' die verankerung im dokument. auf roten hintergrund setzen
marken = verzeichnisse.getByIndex(0).documentindexmarks
s = ""
for i = 0 to UBound(marken)
s = s & marken(i).anchor.string & CHR$(10)
marken(i).anchor.charbackcolor = RGB(255,0,0)
next i
msgbox s
end sub
Wie man sieht, ist ein Verzeichnis ein einziger Textblock, also kann man nicht auf einzelne Worte zugreifen um Links aus ihnen zu machen. Die einzige Moeglichkeit, die mir einfällt, ist es das Verzeichnis nach dem aktualisieren zu parsen und für jedes wort, dass mit einem stichwort zusammenfaellt die Links auf die Anchor-Eigenschaft zu setzen.
Zap
Hi MKmitta,
ich hab mal ein bisschen herumexperimentiert:
[code]
sub Stichwoerter
dim verzeichnisse
dim verzeichnis_namen
doc = ThisComponent
verzeichnisse = doc.getDocumentIndexes
verzeichnis_namen = verzeichnisse.getElementNames()
' alle Verzeichnisse anzeigen lassen
msgbox Join(verzeichnis_namen, CHR$(10))
' ein Verzeichnis ist eine Sammlung von Absaetzen
' wird also durch ein Textintervall beschrieben
' mal den Hintergrund auf gruen setzen
verzeichnisse.getByIndex(0).anchor.charbackcolor = RGB(0,255,0)
Dim s as String
Dim i as integer
' durch das Verzeichnis selber laufen. Leider sind die eintraege selber
' nur Text, a
AbsatzEnum = verzeichnisse.getByIndex(0).Anchor.CreateEnumeration
do while AbsatzEnum.hasmoreElements()
Absatz = AbsatzEnum.nextElement()
WortEnum = Absatz.CreateEnumeration()
i = i+1
s = s & "Absatz " & CStr(i) &"---------" & CHR$(10)
do while WortEnum.hasmoreElements()
Wort = WortEnum.nextElement()
s = s & wort.TextPortionType & CHR$(10)
loop
loop
msgbox s
' die verankerung im dokument. auf roten hintergrund setzen
marken = verzeichnisse.getByIndex(0).documentindexmarks
s = ""
for i = 0 to UBound(marken)
s = s & marken(i).anchor.string & CHR$(10)
marken(i).anchor.charbackcolor = RGB(255,0,0)
next i
msgbox s
end sub
[/code]
Wie man sieht, ist ein Verzeichnis ein einziger Textblock, also kann man nicht auf einzelne Worte zugreifen um Links aus ihnen zu machen. Die einzige Moeglichkeit, die mir einfällt, ist es das Verzeichnis nach dem aktualisieren zu parsen und für jedes wort, dass mit einem stichwort zusammenfaellt die Links auf die Anchor-Eigenschaft zu setzen.
Zap