Ver Mensaje Individual
  #2  
Antiguo 04-01-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile ConnectKind = ckNewInstance

¡Hola a todos!

Lookmydoom:

Normalmente, si no tienes abierto Word, no debe aparecer ninguna ventana durante el procesamiento, a menos que ordenes esa aparición explícitamente, o bien, que se encuentre ya abierto y visible Word.

Te aconsejo utilizar el componente nativo TWordApplication, con el cual he trabajado en varias ocasiones. Para evitar que aparezcan nuevas ventanas de Word puedes establecer su propiedad ConnectKind a ckNewInstance. También es recomendable poner su propiedad AutoQuit en True para que no se quede en memoria la instancia de Word al terminar de ejecutarse la aplicación Delphi.

El siguiente código que he preparado muestra cómo abrir un archivo .doc y buscar una palabra dentro del mismo. Si la propiedad ConnectKind es ckNewInstance, no debe aparecer nada en pantalla durante la operación.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  OleVariant (WordApplication1.Documents).Open ('C:\WINDOWS\Temp\Documento.doc');

  If OleVariant (WordApplication1.Selection.Find).Execute ('juan') Then
    ShowMessage ('El documento sí contiene la palabra "juan".')
  Else
    ShowMessage ('El documento no contiene la palabra "juan".');

  OleVariant (WordApplication1.ActiveDocument).Close ();
end;

Lo probé con Delphi 7, componentes Servers 2000 y Word 2000, pero es muy probable que funcione sin ningún problema en versiones posteriores. Espero sea de utilidad.

Un abrazo invisible.

Al González.
Responder Con Cita