AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm hängt sich bei Druck via Word 2007 auf
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Programm hängt sich bei Druck via Word 2007 auf

Ein Thema von TomF9 · begonnen am 1. Okt 2013 · letzter Beitrag vom 8. Okt 2013
 
TomF9

Registriert seit: 1. Okt 2013
14 Beiträge
 
#4

AW: Delphi Programm hängt sich bei Druck via Word 2007 auf

  Alt 1. Okt 2013, 09:42
@mokus

1) Das ist auch ein sehr interessantes Verhalten, es funktioniert wenn man am tag 15 mal ausdruckt 14 mal und beim 15 mal schmiert das ganze ab. Man kann eigentlich keinen Zusammenhang feststellen.

2)
Delphi-Quellcode:
 
  Result := False;
  // ResetError;
  // ResetWarning;
  try
    InitializeWordApplication; //Hier wird Word gestartet
    try

      ovCurPrinterName := WordApp.ActivePrinter;
      try
        OpenDocument(fname);

        // UpdateFieldsAtPrint für das Aktualisieren der Seitennummern.
        WordApp.Options.UpdateFieldsAtPrint := ovTrue;

        SetWordPrinter(ovPrinterName,ovPaperTray); //Hier der Drucker gesetzt
        WordDoc.PrintOut(ovFalse{Background});
        WordDoc.Close; //Das geöffnete Dokument geschlossen
        Result := true;
      finally
        SetWordPrinter(ovCurPrinterName,ovPaperTray);
      end;
    finally
      //HIER TRITT DER FEHLER AUF
      CloseWordApplication; //Eine Unterfunktion aufgerufen die Word schließt und abhängig vom Brief und davon ob etwas geändert
                            //wird denn Brief speichert
    end;
  except
    on E: Exception do begin
      SetError(E);
    end;
  end;
Und in der Funktion CloseWordApplication passiert folgendes (natürlich ist das ganze in dem try/except Block aber das poste ich hier jetzt nicht ):

Delphi-Quellcode:
    if assigned(WordDoc) then
    begin
      if WordDocConnected then
      begin
        if WordAppConnected then
        begin
          // Evtl. offenes Dokument speichern und schliessen
          ovSaveChanges := wdSaveChanges;
          WordDoc.Close(ovSaveChanges{SaveChanges}, ovEmpty{OriginalFormat},
            ovEmpty{RouteDocument});
        end;
        WordDoc.Disconnect;
        WordDocConnected := False;
      end;
      WordDoc.Free;
      WordDoc := nil;
    end;
    if assigned(WordApp) then
    begin
      if WordAppConnected then
      begin
        // WordApp Objekt disconnecten und freigeben
        WordApp.Quit; //HIER BLEIBT ER HÄNGEN
        WordApp.Disconnect;
        WordAppConnected := False;
      end;
      WordApp.Free;
      WordApp := nil;
    end;
3)
Nein habe noch nicht wirklich was verändert außer das ich Log-Funktionen eingebaut habe um die genaue Stelle des Fehlers (WordApp.Quit) rauszufinden. Da ich nicht weiß wie ich diese Funktion zum laufen Bringen soll stehe ich hier vor nem Problem

@nahpets

Nein Word läuft im Hintergrund und ich vermute das ich das unserem Kunden nicht erklären kann das er vorübergehen Word sieht
Es kann natürlich auch ein Fehler von Word sein (Fehler tritt nur mit Word 2007 in Kombination mit Win7 auf). Aber auch hier kann mir die Microsoft Seite nicht weiterhelfen
Wie gesagt ich such schon seit 2-3 Monaten nach dem Fehler und weiß nicht mehr weiter.
  Mit Zitat antworten Zitat
 

 

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 17:39 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-2025 by Thomas Breitkreuz