Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Empotrar Una Aplicacion Externa Dentro De Un Formulario
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
Me gustaria "empotrar" (no se si el termino es el correcto) dentro de un formulario hecho en gambas una aplicación externa.. osea:
Tengo una aplicacion externa que tiene un formulario. Ese formulario quiero que se muestre en un control tipo panel dentro de mi aplicación gambas...
Creo recordar que había un control para hacer eso... pero no lo recuerdo...¿alquien sabe como hacerlo?
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
Tú estás hablando del objeto " Embedder ", que pero hoy es deprecated.

http://www.gambas-it.org/wiki/index.php?title=Embedder

El objeto Embedder puedes verlo en los objetos "Deprecated" del IDE de Gambas.


Una otra manera es utilizando las funciones externas del API del sistema grafico X11:    
http://www.gambas-it.org/wiki/index..._del_API_di_X11
 



 
última edición por vuott el Martes, 27 Junio 2017, 09:22; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
vuott escribió: [Ver mensaje]
Tú estás hablando del objeto " Embedder ", que pero hoy es deprecated.

http://www.gambas-it.org/wiki/index.php?title=Embedder

El objeto Embedder puedes verlo en los objetos "Deprecated" del IDE de Gambas.


Una otra manera es utilizando las funciones externas del API del sistema grafico X11:    
http://www.gambas-it.org/wiki/index..._del_API_di_X11


buena data!
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
Vuott:

¿y como consigo el Id de la ventana de la aplicación (si no es de gambas, como expones en tu ejemplo)?

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
Si no recuerdo mal el embedder sólo funcionaba con las aplicaciones que cumplían no sé qué estándar... y las de gambas no la cumplían    

Si lo consigues cuéntamelo porque yo eso ya lo he intentado y no lo he conseguido. A ver si tú tienes más suerte... o eres menos torpe que yo  
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
jsbsan escribió: [Ver mensaje]
¿y como consigo el Id de la ventana de la aplicación (si no es de gambas...)

Podemos usar la modalidad del Metodo ".FindWindow( )" de la Clase "Desktop".

Exemplum:
en este ejemplo practico nosotros queremos englobar la ventana abierta del "Terminal" (hace falta activar los Componentes gb.desktop y gb.desktop.x11 ! ).
En este caso se supone que el nombre visible de la ventana del Terminal es: " Terminal ".

Public Sub Form_Open()

  Button1.Text = "Cape fenestram !"
  Button2.Text = "Libera me, Domine !"

End


Public Sub Button1_Click()

  Dim i As Integer

' Obtenemos el ID de la "ventana" del "Terminal" abierta en el desktop:
   i = Desktop.FindWindow("Terminal", Null, Null)[0]
  
' Vamos a usar el Metodo "Embed" con el ID de la ventana del Terminal para englobarla en el objeto "Embedder":
   Embedder1.Embed(i)
  
End


Public Sub Button2_Click()

' Libera de el objeto "Embedder" la ventana del Terminal:
  Embedder1.Discard()

End

 



 
última edición por vuott el Miercoles, 28 Junio 2017, 15:16; editado 8 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
shordi escribió: [Ver mensaje]
Si no recuerdo mal el embedder sólo funcionaba con las aplicaciones que cumplían no sé qué estándar... y las de gambas no la cumplían
    
Embedder me funciona tambien con las ventanas de las aplicaciones gambasianas.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
vuott escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Si no recuerdo mal el embedder sólo funcionaba con las aplicaciones que cumplían no sé qué estándar... y las de gambas no la cumplían
    
Embedder me funciona tambien con las ventanas de las aplicaciones gambasianas.


Benoit ipse dixit:
Citar:
This class provides a control that can embed any other X11 window from any other X11 application.

The embedded application should follow the XEmbed protocol.

A gambas application does not follow the XEmbed protocol by default. To follow it, the application must get the window handle of the embedder control from the embedder application, and use the Application.Embedder property to embed itself into that embedder control.

If the embedded application does not follow the XEmbed protocol, then focus handling, activation, accelerators and other features will not work properly.

La negrita mía ser. Tu empotrar conseguido has. La fuerza grande en tí es.
     
 




===================
No podemos regresar
 
última edición por shordi el Miercoles, 28 Junio 2017, 09:49; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
shordi escribió: [Ver mensaje]
La negrita mía ser. Tu empotrar conseguido has. La fuerza grande en tí es.


¡Maestro, nunca me convertiré a el lado oscuro y tenebroso de la Fuerza: el Pythonismo !
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Empotrar Una Aplicacion Externa Dentro De Un Formulario 
 
vuott escribió: [Ver mensaje]
' Obtenemos el ID de la "ventana" del "Terminal" abierta en el desktop:
   i = Desktop.FindWindow("Terminal", Null, Null)[0]
  

El Metodo "Desktop.FindWindow( )" tiene tres parametros, que se refieren a la ventana tenida en cuenta, y que mejor están explicados en esta pagina:
http://gambaswiki.org/wiki/comp/gb.desktop/desktop/findwindow

y que, de todas formas, nosotros podemos conocer con el Metodo ".GetWindowProperty( )" de la Clase X11 del Componente gb.desktop.x11 (tenemos pero que conocer el numero de identificación de la ventana del programa externo que nos interesa).

Exemplum breve:
Public Sub Button1_Click()

  Dim id As Integer

   id = ......   ' numero de dentificación de la ventana del programa externo

   Print "Title: "; X11.GetWindowProperty(id, "WM_NAME")
   Print "Class: "; X11.GetWindowProperty(id, "WM_CLASS")
   Print "Role: "; X11.GetWindowProperty(id, "WM_WINDOW_ROLE")

End

 



 
última edición por vuott el Miercoles, 12 Julio 2017, 18:17; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Crear Formulario Por Código Con Algunos O... santijav General 4 Miercoles, 27 Abril 2011, 09:28 Ver último mensaje
Shell
No hay nuevos mensajes Como Correr Un Programa Externo Dentro De ... jcontasti General 2 Martes, 22 Noviembre 2011, 18:37 Ver último mensaje
jguardon
No hay nuevos mensajes ¿Hay Alguna Manera De Saber Qué Control ... shordi General 2 Viernes, 14 Febrero 2014, 12:45 Ver último mensaje
Shell
No hay nuevos mensajes Acceder A Objetos Que Están Dentro De Un ... santijav General 1 Viernes, 29 Abril 2011, 23:46 Ver último mensaje
santijav
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario