Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2007
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Abrir archivo de Word pero incrustado en Form

Hola a todos. He revisado bastantes hilos que tratan del tWordDocument y tWordApplication, pero en todos ellos se abre la aplicación Word a parte. Yo lo que necesito es abrir un documento de Word dentro de mi formulario, incrustado. Es decir, para hacer un preview del documento.
También he visto un código que permite abrir un word en un tWebBrowser, pero no me funciona, dado que igualmente por algún motivo se abre el Word en una ventana aparte.
¿Tenéis alguna idea de si puede hacerse lo que necesito?
Gracias de antemano a todos.
Saludos
Responder Con Cita
  #2  
Antiguo 14-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Busca en la página de Federico, hay ejemplos de cómo abrir una aplicación dentro de un formulario de Delphi.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-11-2007
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Hola. Estoy viendo el programa de ejemplo "chproc.zip" aunque no consigo hacerlo funcionar dado que no veo que pase nada. Sigo haciendo pruebas a ver si descubro que pasa.
Gracias
Responder Con Cita
  #4  
Antiguo 14-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por mak8888 Ver Mensaje
Estoy viendo el programa de ejemplo "chproc.zip" aunque no consigo hacerlo funcionar dado que no veo que pase nada.
Si pulsas el botón se ejecuta una aplicación externa (en el caso del ejemplo el notepad de Windows) y esa aplicación se crea (o mejor dicho a posteriori de incrusta) en el formulario que tienes en la pantalla, buscando la ventana de la aplicación creada y cambiandole el Parent.

Yo la he compilado y me funciona a la perfección.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-11-2007
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Pues a mi el notepad no me aparece en ningún sitio. Ni en el formulario, ni fuera de el. Estoy usando Delphi 7 y me sucede lo mismo tanto en Vista como en XP
El programa se ejecuta, pulso el botón y no sucede nada.
Gracias por tus respuestas.
Responder Con Cita
  #6  
Antiguo 14-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si revisas el código llegarás a esta línea:

Código Delphi [-]
  Win32Check(CreateProcess(nil, 'NOTEPAD.EXE', nil, nil, FALSE,
                    CREATE_NEW_CONSOLE, nil, nil, StartInfo, ProccesInfo));

Sustituye NOTEPAD.EXE por cualquier otro programa que quieras; Puedes incluir el path para mayor seguridad.

Otra opción es sustituir el procedimiento entero por este otro, a ver si este te devuelve algun mensaje de error:

Código Delphi [-]
procedure TfrmMain.Button1Click(Sender: TObject);
var
  StartInfo: STARTUPINFO;
  ProccesInfo: PROCESS_INFORMATION;
  hNotepad: HWND;
begin
  ZeroMemory(@StartInfo, SizeOf(STARTUPINFO));
  with StartInfo do
  begin
    cb := SizeOf(STARTUPINFO);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := SW_HIDE;
  end;

  try
    Win32Check(CreateProcess(nil, 'c:\winnt\_NOTEPAD.EXE', nil, nil, FALSE,
                             CREATE_NEW_CONSOLE, nil, nil, StartInfo, ProccesInfo));

    hNotepad := FindThreadWindow(ProccesInfo.dwThreadId, 0, nil, nil);
    if hNotepad <> 0 then begin
      { La muestra despues para evitar que se vea en equipos lentos }
      Windows.SetParent(hNotepad, sbSpool.Handle);
      ShowWindow(hNotepad, SW_SHOW);
    end
    else begin
      MessageDlg('No se ha encontrado la aplicación funcionando...', mtError, [mbOK], 0);
    end;
  except
    on E:Exception do begin
      MessageDlg(Format('Se ha producido un error: %s' ,[E.Message]), mtError, [mbOK], 0);

    end;
  end;
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 14-11-2007
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Según el administrador de tareas, el notepad se ejecuta, aunque yo no lo veo por ningún sitio, por tanto no debe de ser problema de la ruta
P.D. Escribiendo el código que me pones arriba, cambiando evidentemente la ruta, pasa lo mismo. Se lanza un proceso notepad que no veo por ningún lado :-S
Lo raro es que a ti te funcione el mismo código.
P.D.2. Lo he probado en el PC de un compañero del trabajo y a el le funciona. Ahora sí no entiendo nada. En fin, gracias por todo. Seguiré haciendo pruebas.

Última edición por mak8888 fecha: 14-11-2007 a las 13:53:05.
Responder Con Cita
  #8  
Antiguo 14-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Coloca esto debajo del ShowWindow para posicionar la nueva ventana.
Prueba con otra aplicación que no sea el notepad.

¿Qué S.O. tienes? ¿Tenéis ambos el mismo?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 14-11-2007
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
[quote=Neftali;246067]Coloca esto debajo del ShowWindow para posicionar la nueva ventana. QUOTE]
Qué tengo que colocar?

En la otra máquina ya va el notepad, desplazado pero va, supongo que será cosa de jugar con los parámetros. El porqué no va en mis 2 PC's ni idea la verdad. Uno es un Vista que es explicable, pero el otro es un portátil con XP y tampoco va. Mi compañero tiene un PC de sobremesa con XP y le va, desplazado como digo, pero se le ve. En mi portátil por mucho que maximice el formulario, el notepad no aparece por ningún sitio. En fin, espero que la persona que vaya a usar la aplicación le funcione aunque no es la solución. Sobretodo pq va a ser algo jodido depurar código si yo no veo que tal va.
Gracias por todo compañero.
Responder Con Cita
  #10  
Antiguo 14-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por mak8888 Ver Mensaje
Qué tengo que colocar?
Perdón, me dejé el texto...
Código Delphi [-]
      SetWindowPos(hNotepad, HWND_TOP, 0, 0,
                   sbSpool.ClientWidth,
                   sbSpool.ClientHeight,
                   SWP_SHOWWINDOW);
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 14-11-2007
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Hola. Muchas gracias por el código. A ver si mañana consigo averiguar porque no va en mis máquinas. Me has ayudado mucho.
Gracias de nuevo.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Abrir un archivo de texto pero de otro ordenador kakarotv5 Servers 8 03-10-2007 09:12:53
Error de parametros al intentar abrir un archivo Word ilichhernandez OOP 7 20-05-2007 21:31:02
Error al abrir tabla en Winxp, pero en Win98 funciona, por que? URBANO Conexión con bases de datos 10 22-06-2006 09:30:10
abrir un documento word marianaf Servers 3 22-12-2003 14:49:57
TTabSheet con TMemo incrustado por defecto oesteve OOP 1 10-06-2003 17:26:55


La franja horaria es GMT +2. Ahora son las 20:13:02.


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
Copyright 1996-2007 Club Delphi