Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   OO Writer - fehlende Bookmarks? (https://www.delphipraxis.net/158211-oo-writer-fehlende-bookmarks.html)

Kirby886 9. Feb 2011 16:06

OO Writer - fehlende Bookmarks?
 
Nabend,

kurze Frage:

Delphi-Quellcode:
function TOLEWinwordControl_L2.OOGetBookMarks: TStringList;
var tmpBookmarks: OLEVariant;
    i          : Integer;
begin              
  Result := TStringList.Create;
  Result.Clear;
  if (VarIsEmpty(Document) or VarIsNull(Document)) then Exit;

  TRY
    tmpBookmarks := Document.Bookmarks.GetElementNames;
    for i := VarArrayLowBound(tmpBookmarks, 1) to VarArrayHighBound(tmpBookmarks, 1) do
      Result.Add(tmpBookmarks[i]);
  EXCEPT
  END;
end;
Mit dieser Funktion lese ich die Bookmarks eines oot-Dokuments aus. Als Ergebnis bekomme ich einige Namen korrekter Bookmarks, einen jedoch nicht. Hat jemand eine Idee, wieso ein Bookmark fehlen könnte? Im Dokument steht es, habs sogar extra noch einmal geschrieben.

Grüße

himitsu 9. Feb 2011 16:22

AW: OO Writer - fehlende Bookmarks?
 
Eventuell kommt dein Microsoft Word nicht ganz mit dem Oracle OpenOffice-Dokument zurecht?

PS: Ein leeres Try-Except ist nicht unbedingt optiomal ... aber wenn schon, dann mach bitte ein Result.Free da rein, damit die Stringliste bei einer Exception freigegeben wird.

Lemmy 9. Feb 2011 16:43

AW: OO Writer - fehlende Bookmarks?
 
Hi,

kann das sein, dass dieses Bookmark innerhalb einer Textbox steht? Die wurden bei mir auch nie gefunden - habe aber nicht weiter untersucht bzw. meine Lösung war es Textboxen zu vermeiden.

GRüße

Kirby886 9. Feb 2011 23:02

AW: OO Writer - fehlende Bookmarks?
 
Nabend nochmal und danke für die Antworten.

Zitat:

Zitat von himitsu (Beitrag 1080581)
Eventuell kommt dein Microsoft Word nicht ganz mit dem Oracle OpenOffice-Dokument zurecht?

Ich hab das oot-Dokument zuvor mit OO Writer bearbeitet - oder was genau meinst du mit MS Word?

Zitat:

Zitat von himitsu (Beitrag 1080581)
PS: Ein leeres Try-Except ist nicht unbedingt optiomal ... aber wenn schon, dann mach bitte ein Result.Free da rein, damit die Stringliste bei einer Exception freigegeben wird.

Da geb ich dir absolut recht. Früher hat man anscheinend so programmiert, ich werds morgen mal anpassen. :wink:

Zitat:

Zitat von Lemmy (Beitrag 1080583)
kann das sein, dass dieses Bookmark innerhalb einer Textbox steht?

Ohne das Dokument nun vorliegen zu haben würde ich aus dem Gedächtnis heraus behaupten, dass dort keine Textbox war. Ich werde ansonsten morgen mal ein paar Bookmarks austauschen um festzustellen, ob es an der Stelle oder am Bookmark selbst liegt.

Bin für Ideen weiter offen. :thumb:

Grüße

himitsu 9. Feb 2011 23:18

AW: OO Writer - fehlende Bookmarks?
 
Zitat:

Zitat von Kirby886 (Beitrag 1080716)
oder was genau meinst du mit MS Word?

OOT ist doch ein OpenOffice-Format?
Und TOLEWinwordControl klingt nach Word von Microsoft.

Auch wenn MSO OO-Dateien versteht, muß es sie nicht komplett unterstützen/verstehen.



Wenn das mit der Textbox von Lemmy so stimmt, dann wäre es wohl verständlich, wenn man nun alle Textboxen durchgehen und darin auch nochmal nach Bockmarks suchen müßte. :gruebel:

Kirby886 9. Feb 2011 23:26

AW: OO Writer - fehlende Bookmarks?
 
Zitat:

Zitat von himitsu (Beitrag 1080724)
Und TOLEWinwordControl klingt nach Word von Microsoft.

Achso! Sorry, mein Fehler, so unrelevante Informationen sollte ich von vornherein nicht posten. Die Klasse behandelt sowohl OpenOffice- als auch MS Word-Dokumente, deshalb hat sich irgendein schlauer Kopf mal diesen Klassennamen ausgedacht. Einfach ignorieren, hier geht es nur um OpenOffice. :P

Kirby886 10. Feb 2011 09:58

AW: OO Writer - fehlende Bookmarks?
 
Wisst ihr welche Probleme die besten sind? Die Probleme der anderen. :twisted:

Ich bin nochmal alles in Ruhe durchgegangen: Das Programm arbeitet absolut korrekt, der Fehler liegt irgendwo im ott-Dokument. Darum darf sich aber nun ein OpenOffice-Experte kümmern, ich hab für diesen Anwenderfehler schon genug Zeit verschwendet. :wall:

Trotzdem danke und einen schönen Tag noch! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz