Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Form contenedor de otra aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=39800)

vejerf 30-01-2007 12:46:01

Form contenedor de otra aplicacion
 
Buenas a tod@s...
la pregunta del día es la siguiente... ¿cómo puedo hacer para abrir una aplicación(word, excel...) dentro de la ventana de un formulario?
La idea es tener mi propia aplicación, con mi propio menú desde el cual pueda abrir o bien un fichero word o excel o el que me de la gana jeje :p
Gracias a tod@s...

Neftali [Germán.Estévez] 30-01-2007 17:23:45

A ver si este ejemplo te sirve. Es simple, pero te puede dar una idea.
Se trata de usar la API SetParent para asignar el handle de la nueva aplicación a un TWinControl de Delphi.

Como ocupa mucho lo subo a MegaUpload.

seoane 30-01-2007 18:08:59

Lo que propone neftali es algo parecido a esto:

http://www.clubdelphi.com/foros/show...46&postcount=6

vejerf 30-01-2007 21:11:10

Muchas gracias compis...
ahora abusando de vuestra confianza otra pregunta...
quiero q la ventana de wordpad, por usar el ejemplo q me dais, no tenga la posibilidad de minimizar, maximizar ni tan siquiera el titulo... como puedo hacerlo?...
es modificar la ventana de una aplicacion q estoy usando!!!
Gracias

roman 30-01-2007 21:30:51

Cita:

Empezado por Neftali
Como ocupa mucho lo subo a MegaUpload.

Cita:

Empezado por MegaUpload
Todos los puertos de descarga asignados a su país (Mexico) están en uso. Por favor, inténtelo nuevamente dentro de unas horas

¿Sería mucho pedir si lo pusieras en tu espacio web del club? :rolleyes:

// Saludos

Neftali [Germán.Estévez] 31-01-2007 11:23:58

Cita:

Empezado por roman
¿Sería mucho pedir si lo pusieras en tu espacio web del club?

Pues no, Román, no sería mucho pedir. Es más, sería lo normal, pero es que estos días tengo las neuronas en otro sítio y ni me había acordado de que tenemos el espacio...

...Subiendo.

http://www.terawiki.clubdelphi.com/

apicito 31-01-2007 14:15:22

Alguien puede explicarme por qué si funciona con msOffice no lo hace con Open Office? Con el segundo envez de abrirlo en la misma ventana lo abre en una ventana independiente.
Yo no tengo instalado el msOffice y cuando abro un .doc o .xls me arranca el OpenOffice.
Que es lo que cambia de uno a otro?.
Tengo abierta esta consulta en SourceForge:
http://sourceforge.net/forum/forum.p...orum_id=627999
Pero no acabo de entenderlo. A alguien le suena esto?.
Un saludo.

Neftali [Germán.Estévez] 31-01-2007 14:57:27

Claro que funciona con OpenOffice, sólo que la clase de OpenOffice es diferente de la de Word o Excel.
Las clases para las plicaciones Word y Excel son:
Código Delphi [-]
  WORD_CLASS = 'OpusApp';
  EXCEL_CLASS = 'XLMAIN';

Y si usas OpenOffice son:

Código Delphi [-]
  WORD_CLASS = 'SALFRAME';
   EXCEL_CLASS = 'SALFRAME';

NOTA: LA versión con la que estoy comprobando esto es la version "Portable" de OpenOffice, supongo que en la otra serán iguales.

seoane 31-01-2007 15:05:29

Cita:

Empezado por apicito
Alguien puede explicarme por qué si funciona con msOffice no lo hace con Open Office? Con el segundo envez de abrirlo en la misma ventana lo abre en una ventana independiente.

La explicación es muy sencilla, en el ejemplo de Neftali se abre el documento y luego se busca la ventana por su nombre de clase, que no es el mismo para micrsosft office que para open office. Esto no es un bug, lo que tienes es que encontrar el nombre de la clase de las ventanas de Open office y utilizar ese en vez del que usa Neftali.

También puedes usar el ejemplo que muestro yo, en el que capturamos la primera ventana que muestra la aplicación, sea la aplicación que sea.

EDITO: Parece que neftali estuvo mas rápido.

apicito 31-01-2007 15:32:11

En el ejemplo de Seoane, me abre el notepad fuera del formulario delphi.
En el ejemplo de neftali he cambiado
Código:

  WORD_CLASS = 'SALFRAME';
  EXCEL_CLASS = 'SALFRAME';

y tambian abre las aplicaciones fuera en una ventana independiente.
Que puede estar pasando?

vejerf 31-01-2007 15:54:24

Ahora mi pregunta es la siguiente... donde busco yo el nombre de la clase de las ventanas???
Lo que me interesa ahora es abrir dentro de mi formulario una ventana de la aplicación google earth

PD: sois unos fenómenos!!!:D

Neftali [Germán.Estévez] 31-01-2007 17:22:57

Cita:

Empezado por apicito
me abre el notepad fuera del formulario delphi.
...
En el ejemplo de neftali he cambiado tambian abre las aplicaciones fuera en una ventana independiente.

Los ejemplos eran eso, ejemplos.
Se trataba de comprenderlos y modificarlos, no estaba todo hecho.
En el caso de mi ejemplo, el problema es que si la aplicación tarda mucho en abrirse, cuando se ejecuta la línea que busca la ventana, todavía no se tiene un Handle correcto.
En el caso de Seoane, por lo que he visto se usa un TimeOut, para corregir ese problema, con lo que con un tiempo suficientemente alto debe funcionar.

Cita:

Empezado por vejerf
... donde busco yo el nombre de la clase de las ventanas???

Hay muchas aplicaciones que te muestran esta información. Por ejemplo, WinExplorer.

Cita:

Empezado por vejerf
me interesa ahora es abrir dentro de mi formulario una ventana de la aplicación google earth

:D:D:D link

apicito 31-01-2007 17:41:56

Gracias por la ayuda y perdonad mi burrería.
Llevo más de dos años buscando esto..., he hecjo preguntas en foros, incluso en este, y por fin...
Un saludo.

vejerf 01-02-2007 12:48:36

Gracias por todo Neftali... pero sigue sin funcionarme del todo :( ... consigo que se abra la aplicación de google earth, pero no dentro de mi form sino como aplicación aparte... en fin... patientia et constantia :rolleyes:

casacham 08-07-2007 17:13:32

Muy Buen Ejemplo
 
Bueno, es solo para decir que esta muy lindo y clarificador su ejemplo

Desde ya gracias por la ayuda


La franja horaria es GMT +2. Ahora son las 15:57:22.

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