Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   problema impresión con Word a través de OLE (https://www.clubdelphi.com/foros/showthread.php?t=71451)

mak8888 20-12-2010 12:13:02

problema impresión con Word a través de OLE
 
Buenos días a todos. Tengo el siguiente código:

Código Delphi [-]
    gWord := CreateOLEObject('Word.Application');
    gWord.Documents.Add(path);
    Documento := gWord.Documents.Item(1);
    // le paso al Word las variables que quiero que "incruste" en el documento
    Documento.Variables.Add('nombre', Edt_empleado.text);
...
    Documento.Variables.Add('ciudad', Edt_lugar_incidencia.Text);
    Documento.Fields.Update;
    documento.Fields.ToggleShowCodes;
    Document := gWord.ActiveDocument;

    dialogs := gWord.Dialogs.item(88);
    dialogs.show;

    gWord.ActiveDocument.Close(0);
    gWord.Quit(False);

El problema es que si añado la última línea (el .quit), parece ser que el Word se cierra antes de haber impreso. Si no pongo .quit, muestra el dialogo de impresión e imprime, pero se queda abierta la ventana de Word. He probado varios códigos para cerrar el Word, pero todos hacen que reviente, excepto .quit.

Alguna idea?
Gracias a todos.

pacopenin 20-12-2010 12:57:48

Hola mak8888:

Prueba con esto. A mi me funcionó para la generación de un .pdf donde me pasaba lo mismo.

Código Delphi [-]
while gWord.BackgroundPrintingStatus <> 0 do
      begin
         Sleep(10);
         Application.ProcessMessages;
      end;

mak8888 20-12-2010 13:06:09

Hola pacopenin. Gracias por tu respuesta. Funciona a las mil maravillas. Curioso lo que hay que hacer a veces en programación jejeje.
Saludos y nuevamente 1000 gracias.

pacopenin 20-12-2010 13:25:05

De nada.

Un saludo.


La franja horaria es GMT +2. Ahora son las 11:22:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi