Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Libre-Office, LCL-Datei wird nicht mehr angelegt (https://www.delphipraxis.net/187154-libre-office-lcl-datei-wird-nicht-mehr-angelegt.html)

hoika 2. Nov 2015 07:02

Libre-Office, LCL-Datei wird nicht mehr angelegt
 
Hallo,
ich steuere neben MS-Word auch Open-Office / Libre-Office fern.
Klappt ganz gut (Beispiele gibt es genug im Netz.

Aber:
Seit irgendeiner 4er Version erzeugt Libre-Office keine Lock-Datei mehr,
wenn ich die ODT per COM öffne.
Ist es normal gestartet, wird die Lock-Datei erzeugt.

Es geht hier wie gesagt um Libre-Office, mit Open-Office ist das Verhalten wie erwartet.

Beim Schliessen von Open-Office wird natürlich auch die Lock-Datei gelöscht.

Das ist für mich das Zeichen, dass ich die ODT nehmen und weiterverarbeiten kann.

In der Doku zu Libre-Office steht auch was von "API-Changes".

Weis jemand, wie ich dem Libre-Office wieder beibringen kann, die Lock-Datei zu benutzen?


Danke

Heiko

hoika 2. Nov 2015 09:21

AW: Libre-Office, LCK-Datei wird nicht mehr angelegt
 
Hallo,

das muss wohl auch über einen CloseListener funktionieren.
fragt sich nur, wie ...


Heiko

hoika 2. Nov 2015 09:55

AW: Libre-Office, LCL-Datei wird nicht mehr angelegt
 
Hallo,

hm, ich habe das ganze noch mal durchdebuggt.
Die Log-Datei wird erzeugt, wenn ich per UNO die Datei öffne.

Öffne ich Sie per CreateProcess,
um sie einfach nur anzuzeigen, wird die Lock-Datei nicht erzeugt.


Heiko

hoika 2. Nov 2015 10:39

AW: Libre-Office, LCL-Datei wird nicht mehr angelegt
 
Hallo,

so hat sich erledigt.
Copy&Paste-Fehler

Im Code stand das hier (MS Word 97):

Delphi-Quellcode:
   
    { Was hat das Word 97 hier zu suchen ???
      deshalb klappte das mit Libre-Office nicht mehr }
    SaveParams:= VarArrayCreate([0, 0], varVariant);
    SaveProperty := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
    SaveProperty.Name:= 'FilterName';
    SaveProperty.Value:= 'MS Word 97';
    SaveParams[0]:= SaveProperty;
    *)
    SaveParams := EmptyParam;

    StarDocument.storeAsUrl(AFileURL, SaveParams);
Open-Office hat das als "Unsinn" ignoriert, Libre-Office ab 3.6 aber irgendwie berücksichtigt,
damit war die ODT keine ODT mehr, sondern irgendwas anderes.
Das Öffnen der Datei hatte dann auc ie Sperrdatei nicht mehr erzeugt, weil es keine OO-Datei war.

Habe es gerade mit OO und LO geprüft, läuft !!!


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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