AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Word OLE ReadOnly, Meldung beim Beenden unterdrücken
Thema durchsuchen
Ansicht
Themen-Optionen

Word OLE ReadOnly, Meldung beim Beenden unterdrücken

Ein Thema von hoika · begonnen am 19. Jun 2012 · letzter Beitrag vom 19. Jun 2012
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 07:54
Hallo #,

folgender Code öffnet ein Dokument ReadOnly in Word.

Delphi-Quellcode:
FWordApp.Documents.Open(DocTemplate,ConfirmConversions,
      ReadOnly,AddToRecentFiles,
      PasswordDocument,PasswordTemplate,
      Revert,WritePasswordDocument,
      WritePasswordTemplate,Format,
      Encoding, Visible);
FWordApp.ActiveDocument.Protect(wdAllowOnlyFormFields,EmptyParam,EmptyParam);
FWordApp.DisplayAlerts:= wdAlertsNone;
Dummerweise kommt immer noch die Meldung "Dokument speichern?",
wenn ich Word beende.

Den Code habe ich hier noch gefunden,
bekomme ihn aber unter Delphi nicht zum Laufen ?

http://www.a-m-i.de/tips/office/officeautomation.php
VARIANT vArgsClose;
vArgsClose.vt = VT_BOOL;
vArgsClose.boolVal = FALSE;
spDocuments.Invoke1(L"Close", &vArgsClose, &vResult);

Hat jemand noch einen Tip für mich ?

Danke


Heiko
Heiko
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 08:26
Wenn du ein Dokument öffnest, dann solltest du es in einer Zwischenvariable speichern.
Delphi-Quellcode:
var
  mydoc : _Document;
begin
  mydoc := FWordApp.Documents.Open(DocTemplate,ConfirmConversions,
      ReadOnly,AddToRecentFiles,
      PasswordDocument,PasswordTemplate,
      Revert,WritePasswordDocument,
      WritePasswordTemplate,Format,
      Encoding, Visible);
  mydoc.Protect(wdAllowOnlyFormFields,EmptyParam,EmptyParam);
  
  // ...
  // Dokument schliesen ohne speichern
  mydoc.Close({SaveChanges=}False, EmptyParam, EmptyParam);
Andreas
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 10:20
Hallo,

mag sein, das Dumme nur, dass immer die "Datei speichern?"-Meldung kommt.
Da ich nur ein Dokument öffne, reicht für mich das ActiveDocument.

Noch zur Info, es wird eine RTF-Datei geöffnet.

Ich sitze seit 07:30 an diesem vermaledeiten Ding ;(
Im Netz sehe ich, ich bin nicht der einzige.
Probiert habe ich auch das nochmalige Speichern per Save/aveAs,Appliction.Quit usw.

Gerade bin ich über eine Seite bei MS gestolpert,
die vorschlägt, ein "N" per SendKeys (Visual Basic) an den Dialog zu schicken ...
(in diesem Fall ein Drucker-Auswahl-Dialog)


Ich glaube, ich weiss jetzt, wo das Problem ist !
Die RTF wird per WPTools erzeugt.
Word konvertiert ide Datei und fragt jetzt beim Beenden immer nach "Speichern".


Heiko
Heiko

Geändert von hoika (19. Jun 2012 um 10:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 10:27
So als Idee,
was passiert wenn Du auf das ActiveDocument.Protect verzichtest?
Wenn du eh nicht speichern willst, dann ist es egal was mit dem geöffneten Dok passiert.
ActiveDocument.Close(0) könnte vllt. helfen. Word ist ja manchmal recht eigenwillig

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#5

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 10:43
DisplayAlerts:= wdAlertsNone;

ist wdAlertsNone = false?


vielleicht hilft das....

ActiveDocument.Saved := True
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 11:01
Oder du speicherst es unter einem temporären Dateinamen und löschst anschliesend diese Datei.
Schade ist nur dass man unter Windows nicht als /dev/null speichern kann.
Andreas
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 11:14
Hallo,

in allen Fällen kommt diese däml. Meldung "Wirklich speichern".

ActiveDocument.Saved := True probiere ich aus.

Das Protect muss drinbleieben,
es handelt sich um eine Rechnung.
Die darf er drucken.
Und erst nach dem Drucken wird die RTF in die DB geschrieben.
Er soll nicht mal auf die Idee kommen, dass er die Rechnung "bearbeiten" kann.


Danke


Heiko
Heiko

Geändert von hoika (19. Jun 2012 um 11:33 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 11:34
Hallo,

ActiveDocument.Saved := True Wuhaaaaaaaaaaaaa

07:30-12:30 wegen einer Zeile !!!

1000 Danke !!!


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#9

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 11:36
07:30-12:30 wegen einer Zeile !!!
das nächste mal fragst du gleich!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Word OLE ReadOnly, Meldung beim Beenden unterdrücken

  Alt 19. Jun 2012, 12:22
Hallo,

um 09:00 hatte ich ja gefragt ...


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 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