Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Word Document offen? (https://www.delphipraxis.net/162060-word-document-offen.html)

Beck93 4. Aug 2011 08:12

Word Document offen?
 
Hi,

ich bins schon wieder, ich stoße jeden Tag auf neue Probleme in meinen verschiedenen Programmen.

Also ich öffne ein Word Document über Delphi. Nur möchte ich vorher schauen ob es nicht schon geöffnet ist, da sonst immer diese Meldung mit Schreibgeschütz öffnen kommt, was ich aber nicht möchte:(

Hier ist der Quelltext wie ich word öffne:
Delphi-Quellcode:
try
    WordObj := ComObj.CreateOleObject('Word.Application');
    WordObj.documents.open(Exe);
    Doc := WordObj.ActiveDocument;
except
    ShowMessage('Die Datei konnte nicht geöffnet werden!');
    Exit;
  end;
Wie könnte ich jetzt überprüfen ob die Datei schon offen ist?

Bin für jede Hilfe sehr Dankbar

Grüße

Beck93

Andreas Schilling 4. Aug 2011 08:50

AW: Word Document offen?
 
Ich benutze die function "isfileinuse" um von mir temporär auf die festplatte geschriebene Worddokumente (welche ich mit Delphi dann öffne) zu prüfen ob Word das Dokument nach dem Beenden endlich wieder freigegeben hat, damit ich sie zurück in die Datenbank speichern kann. Funktioniert ganz zuverlässig.
http://www.delphipraxis.net/84637-sc...tzung-ist.html

Lemmy 4. Aug 2011 09:57

AW: Word Document offen?
 
Hi,

WordObj.Documents ist ein Container der alle offenen Word-Dokumente enthält. Den kannst Du doch durchlaufen und alle Dokumente prüfen ob deren Namen mit dem Dateinamen über ein stimmt...

Grüße

Beck93 4. Aug 2011 10:00

AW: Word Document offen?
 
Danke für eure Antworten:thumb:

@lemmy: Wie kann ich den Container denn durchlaufen?

Danke

Beck93

p80286 4. Aug 2011 10:37

AW: Word Document offen?
 
Versuch es mal mit:
Delphi-Quellcode:
for i:=1 to WordObj.Documents.Count do
  WordObj.Documents.Item(i).fullname
ungetestet
Gruß
K-H

Lemmy 4. Aug 2011 11:01

AW: Word Document offen?
 
Codebeispiel siehst Du ja oben - ich bin mir nur über die Dimensionen nicht sicher ob das mit 1 oder 0 beginnt... seis drum, das siehst Du.

Wenn Du so Zeugs suchst, kannst Du über die VB-Hilfe (unter den Word-Makros - musst Du ggf. nachinstallieren) auch die notwendigen Aufrufe für VB finden, die du einfach in Delphi umsetzen kannst.

ALternativ machst Du die frühe Bindung und erstellst oder nutzt die Wrapper-Komponenten von Delphi (ab Delphi 7 sind die mit dabei)

Grüße

p80286 4. Aug 2011 11:49

AW: Word Document offen?
 
Excel und Word zählen immer(?) ab 1.
(gab es da nicht mal eine Diskussion uber die Standardzählung in arrays und Verwandten?)
Gruß
K-H

Beck93 5. Aug 2011 07:17

AW: Word Document offen?
 
DAs hört sich gut an mit der frühen Bindung und Wrapper komponenten wenn ich dann mehr alleine Rausfinden kann:) Nur leider weiß ich überhaupt nichts DAmit anzufangen.
Ich habe noch Nie Davon gehört.

Vieleicht wäre ja einer so nett und könnte mir etwas dazu erklären oder beschreiben:?:

Grüße

Beck93

Lemmy 5. Aug 2011 07:49

AW: Word Document offen?
 
Hi,

geh in deine Projektoptionen, dort auf die Option "Packages". In der Liste rechts scrollst Du dann nach unten bis Du "Microsoft Office 2000 Beispiele für gekapselte Komponmenten..." findest. Die sind deaktiviert. einfach aktivieren und gut ist. Alternativ kannst Du auch die Office XP komponenten nehmen. Aufwärtskompatibel sind die alle.


Die Auswahl welche Komponenten Du verwendest hängt stark von deinem Zielmarkt ab. Mit der Auswahl von office 2000 hast Du auf jeden Fall den kleinsten gemeinsamen Nenner, d.h. das sollte auf neueren Office-Versionen funktionieren.

Wenn Du die Funktionen von einer aktuelleren Office-Version nutzen willst, dann kannst Du dir die Wrapper auch selber erzeugen: Komponente - Komponente importieren - Typbibliothek importieren. Dann die entsprechende Word-DLL oder Office-DLL suchen oder notfalls hinzufügen. Ich habe hier kein MS OFfice - deshalb kann ich dir das nicht genau sagen.

Und wenn Du dann noch Interesse hast, das was Du mit MS Office machst auch mit OpenOffice/LibreOffice zu machen, dann schau dich auf meiner Homepage um...

Grüße


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