Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Form On Top

Buenas señores,
Tengo el siguiente problema: uso una aplicación que hace una llamada al Google Earth y la pone "encima" de mi aplicación mediante esta sentencia:
SetWindowPos(Aplicacion.GetMainHwnd,HWND_TOPMOST,220,75,ancho-220,alto-75,SWP_SHOWWINDOW);
Lo importante de esto es que la coloca como "siempre visible" por así decirlo por encima de otros programas q estén corriendo. La cosa es q yo necesito ponerla en primer plano cuando arranque la aplicación, pero cuando accedo a ciertos menús quiero q se me abran encima del Google Earth y no sé como hacerlo...
Alguna idea amigos???

Espero haberme explicado un poco ... Gracias a todos!!!
Responder Con Cita
  #2  
Antiguo 17-10-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
... ciertos menús de tu propio programa ??

Si es así, por qué no detectas cuando se abren esos menus y vuelves a colocar la ventana de tu aplicación por encima de las demás ?

__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 17-10-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Buena respuesta gluglu... pero ahi esta la cosa que no se como hacerlo... yo lo q pretendo es abrir un form encima del google earth que a su vez este he dicho q esté encima de mi aplicacion ... Gracias...
Responder Con Cita
  #4  
Antiguo 17-10-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
 Application.MainForm.FormStyle := fsStayOnTop;
 
 Application.MainForm.FormStyle := fsNormal;
 Application.MainForm.SendToBack;

ó

Código Delphi [-]
 SetWindowPos(Aplicacion.GetMainHwnd,HWND_TOPMOST,220,75,ancho-220,alto-75,SWP_SHOWWINDOW);

y luego:

Código Delphi [-]
 SetWindowPos(Aplicacion.GetMainHwnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE+SWP_NOMOVE);
 SetForegroundWindow(FindWindow({clase}, {nombre})); // La clase y/o el nombre de la ventana del Google Earth

Suerte!
Responder Con Cita
  #5  
Antiguo 17-10-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Acabo de probar tu solución cHackAll pero no es exactamente lo que necesito. Intentaré explicarme algo mejor. Estoy realizando una aplicación que interacciona con el Google Earth intentando que ambas aplicaciones sean una sola. Por eso intento situar el GE en la parte de la pantalla que me interesa que ocupe y todo eso. Pues bien si arranco mi aplicación y no le digo que coloque el GE On Top mediante la sentencia:
SetWindowPos(Aplicacion.GetMainHwnd,HWND_TOPMOST,220,75,ancho-220,alto-75,SWP_SHOWWINDOW);
no puedo tener las dos aplicaciones como si fueran una sola xq si pulsara en cualquier parte de mi aplicación se situaría por encima del GE.
La cosa es q cuando yo selecciono algún menú me interesa q sea este el que se sitúe por encima del resto, es decir, la aplicación de fondo, por encima el GE y encima de él, el nuevo menú. Es como si tuviese varias capas y lo q me interesa es poder estas capas a mi antojo en tiempo de ejecución...
¿Es facilito no?
Responder Con Cita
  #6  
Antiguo 17-10-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por vejerf
¿Es facilito no?


Código Delphi [-]
  Windows.SetParent(Handle, FindWindow(nil, 'Mi PC')); // Ventana "Mi PC" abierta ehhh

Lo que se me ocurre es que puedes meter tu aplicacion "dentro" del Google Earth...

Saludos
Responder Con Cita
  #7  
Antiguo 17-10-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Lo que me interesa es el caso contrario... meter dentro de mi aplicación el Google Earth... ¿sería posible?
Responder Con Cita
  #8  
Antiguo 17-10-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Otra cosa q se me ocurre q podría hacer... pero q tampoco se como hacerlo ... sería poner la aplicación de Google Earth dentro de un componente de mi form formando así parte ya de mi aplicación... es esto posible??? Sería la mejor solución para mi problema...
Responder Con Cita
  #9  
Antiguo 17-10-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por vejerf Ver Mensaje
Lo que me interesa es el caso contrario... meter dentro de mi aplicación el Google Earth... ¿sería posible?
Código Delphi [-]
 Windows.SetParent(FindWindow(nil, 'Mi PC'), Handle);
Responder Con Cita
  #10  
Antiguo 22-10-2007
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Hola,
probé esta solución que me das y a priori marchaba bien. Yo trabajo con el BDS 2006 y cuando ejecuto desde ahi todo marcha bien es decir, el GE "pertenece" a mi aplicación. Sin embargo, una vez realizada la aplicación la ejecute en otro ordenador y mi sorpresa es q ya no pertenecia... volvi a mi ordenador y desde el ejecutable tenia ese mismo comportamiento, sin embargo desde el BDS2006 no... ¿A Alguien se le ocurre el por qué pasa esto?
Responder Con Cita
  #11  
Antiguo 22-10-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Lo unico que se me ocurre es que la funcion FindWindow esta retornando 0 al no encontrar la ventana o la clase; te recomiendo analizar bien esa parte (el ClassName y el WindowName) de tu aplicacion y del GE

Suerte
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
pasar datos de un form a otro form vroa74 API de Windows 15 12-10-2007 19:11:52
Como llamar form desde otros form y regresar a la linea que se estaba ejecutando Willy Rodrigo C++ Builder 1 03-08-2007 19:36:23
Form modal deja que el form llamante tome el foco tata Varios 6 17-05-2006 11:51:37
Imposible hacer visible un form desde otro form SMTZ .NET 13 16-01-2006 21:41:08
Llamar una form desde otra form!!! niogon Varios 2 30-09-2004 16:09:17


La franja horaria es GMT +2. Ahora son las 04:41:08.


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