hey!
hab rausgefunden dass Bookmarks vom Typ XTextContent sind, und XTextContent stammt von XComponent. XComponent lässt sich über .dispose aus dem Dokument löschen.
Das sieht dann in meinem Quellcode so aus:
Delphi-Quellcode:
function OpenOfficeHandler.deleteBookmarks: boolean;
var
bookmark, cursor : Variant;
i: Integer;
str : String;
begin
result := TRUE;
try
// Durchläuft Die Liste der Textmarken vom hinten nach vorne
for i := Document.Bookmarks.Count - 1 downto 0 do begin
bookmark := Document.Bookmarks.getByIndex(i);
// Speichert den Inhalt der Textmarke
cursor := Document.getText.createTextCursorByRange(bookmark.Anchor);
cursor.goRight(1, TRUE);
str := TRIM(cursor.String);
// Löscht die Textmarke und fügt den Text wieder ein
bookmark.dispose;
cursor.String := str;
end;
except
result := FALSE;
end;
end;
Mit dieser Funktion kann man jetzt Textmarken aus einem Dokument löschen ohne deren Inhalt zu löschen.