![]() |
OpenOffice Bookmarks löschen
Hallo Community!
Ich bin neu hier und befasse mich seit kurzem intensiv mit Delphi. Jetzt bin ich zum ersten Mal kurz vor der Verzweiflung weil es einfach nicht klappen will. Es geht um den schon oft diskutierten Zugriff auf die OpenOffice Api. Leider habe ich in der Suche und generell bei Google keine Lösung zu meinem Problem gefunden :( Ich möchte gern leere Bookmarks in einem OpenOffice Dokument löschen. Ich möchte eine Textmarke nicht leeren, sondern komplett aus der Bookmarkliste entfernen. Versucht habe ich es schon :
Delphi-Quellcode:
Weiß Jemand die Lösung?
// so
Document.Bookmarks.Clear; // oder so Document.Bookmarks.removeAll; // oder so Bookmark := Document.Bookmarks.getByName('DataSource_Name').delete; // oder so Bookmark := Document.Bookmarks.getByName('DataSource_Name').remove; |
AW: OpenOffice Bookmarks löschen
Hi,
über "Bookmarks" auf jeden Fall nicht, da das nur die Interfaces XNameAccess und XINdexAccess unterstützt. Über com.sun.star.text.XBookmarkInsertTool kannst Du Bookmarks einfügen, aber fürs Löschen habe ich auf die Schnelle nichts gefunden. Warum willst Du die Bookmarks überhaupt aus dem Text entfernen? |
AW: OpenOffice Bookmarks löschen
hallo Lemmy!
Das ist ja schon mal eine Spur :) Ich möchte die bookmarks komplett entfernen weil man beim Öffnen des Dokuments mit Word die leeren Textmarken noch sieht. Je nachdem wie viele es sind, sieht das ziehmlich eklig aus. Es muss ja irgendwie gehen.. schließlich kann man Textmarken über die Oberfläche von OpenOffice auch löschen. Ich versuch ma mit deinem Tipp zu arbeiten, danke für die schnelle Antwort! |
AW: OpenOffice Bookmarks löschen
Hi,
wenn Du was findest, bin ich über eine Info nicht böse :-) Das SDK hast Du? Und wegen der unschönen Ansicht: Normalerweise ist die Anzeige der Textmarken abgeschaltet und kann in WOrd auch relativ einfach gemacht werden. Wo, das suchst Du am besten in der aktuellen Hilfe deines Words. Grüße |
AW: OpenOffice Bookmarks löschen
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:
Mit dieser Funktion kann man jetzt Textmarken aus einem Dokument löschen ohne deren Inhalt zu löschen.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz