Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como obtener el foco de la aplicacion para que quede la pantalla hasta adelante? (https://www.clubdelphi.com/foros/showthread.php?t=68992)

flystar 20-07-2010 00:28:38

Como obtener el foco de la aplicacion para que quede la pantalla hasta adelante?
 
Hola Hermanos:

Estoy desarrollando un sistema, en cierto paso del funcionamiento del mismo, este manda llamar una ventana del explorador con una página web,
despues de que se termine de realizar el negocio en la página quiero que el sistema que quedo activado..osea funcionando...tenga el foco, osea que la pantalla del sistema se coloque otra vez hasta adelante, osea se haga otra vez visible al usuario.. no se si me doy a entender. Cuando se manda llamar el explorador es obvio que la pantalla del sistema queda oculta, pero terminando de realizar ciertas cosas en la pagina..quiero que otra vez quede visible al usuario.:confused:

Como se hará eso?

Muchas Gracias.

Neftali [Germán.Estévez] 20-07-2010 13:14:38

Sólo se me ocurre que captures el Handle de la aplicación que estás abriendo (explorador); esto será más fácil o difícil dependiendo del sistema que uses para mostrar esa ventana del Explorer.
Una vez que tengas el Handle, en tu aplicación realizar un pooling hasta que detectes que ese Handle (ventana) ha sido cerrada.

flystar 20-07-2010 16:02:56

Gracias..no dependo de que una ventana e cierre
 
Realmente no dependo de que una ventana sea cerrada o no.
Unicamente quiero saber como devolver el foco al sistema y mostraro en pantalla.

Neftali [Germán.Estévez] 20-07-2010 16:18:32

Cita:

Empezado por flystar (Mensaje 370862)
...pero terminando de realizar ciertas cosas en la pagina..quiero que otra vez quede visible al usuario.

Cita:

Empezado por flystar (Mensaje 370895)
Unicamente quiero saber como devolver el foco al sistema y mostraro en pantalla.

El problema es saber cuando quieres retornar el foco a tu aplicación. Dices que "al realizar ciertas cosas", pero no dices qué cosas...
¿Justo después de abrir la ventana?
¿Al cabo de un rato?
¿Cuando el usuario ha hecho algo en la página?
...?¿¿?¿?

flystar 20-07-2010 16:26:03

Hola:

Ok, la situación es que a mi jefe se le ocurrio la "fabulosa" idea de que al apretar un boton de sitio web, se activen cosas de sistema local hecho en Delphi, lo cual es un rollo realmente.

En el sitio web voy a dar de alta un valor en una base de datos y por otro lado en el programa local hecho en Delphi voy a estar medante un ciclo preguntando por ese valor...

Entonces cuand resulte que dicho valor, por ejemplo tenga un "listo", entonces en el programa local voy a decir..."Listo, ya esta el valor, ahora vamos mostrarnos al usuario hasta adelante, ya que el sitio web me aviso que ya terminaron de trabajar con el"

Como puedes ver.. el asunto de que se dispare dicho evento ya lo tengo planeado, el problema no es saber cuando se dispare el evento, pues lo voy a resolver con la base de datos, el problema es saber como devolver el foco a la aplicacion local y que la aplicacion quede hasta adelante..visual al usuario... es como si hiciera un ALT-TAB entre aplicaciones hasta que la aplicacion quede en foco y adelante..pero bueno mas directo.
Debe ser algo facil pero no tengo idea de como hacerlo. Espero darme a entender. :eek::eek:

Neftali [Germán.Estévez] 20-07-2010 16:54:10

Cita:

Empezado por flystar (Mensaje 370904)
Ok, la situación es que a mi jefe se le ocurrio la "fabulosa" idea de que al apretar un boton de sitio web, se activen cosas de sistema local hecho en Delphi, lo cual es un rollo realmente.

Menuda ¡Fabulosa idea! :D:D:D

Cita:

Empezado por flystar (Mensaje 370904)
...el asunto de que se dispare dicho evento ya lo tengo planeado, el problema no es saber cuando se dispare el evento, pues lo voy a resolver con la base de datos, el problema es saber como devolver el foco a la aplicacion local y que la aplicacion quede hasta adelante...

Eso es lo más sencillo, basta con que desde tu aplicación ejecutes:

Código Delphi [-]
  Application.BringToFront;

Esoo la devolverá a primer plano.

flystar 20-07-2010 17:00:09

Pues no funciona bien
 
Pues ya probe ese comando pero no jala bien,

lo que sucede es que el icono que representa la applicacion parpadea
pero no trae la ventana de la aplicacion al frente.

Neftali [Germán.Estévez] 20-07-2010 17:25:57

Pues a mi me funciona perfectamente.
Haz la prueba, pon un timer en un formulario (5000 milisegundos) y coloca ese código; Ejecuta la aplicación y deberías ver como cada vez te la coloca al frente.

Si aun así no te funciona, puedes probar con este truco.

flystar 20-07-2010 17:55:00

Pues no, no funciona
 
Pues no, no funciona, solo hace parpadear el icono de la aplicacion.

Quizas sea por que uso windows 7 o no se

Neftali [Germán.Estévez] 20-07-2010 18:16:45

Cita:

Empezado por flystar (Mensaje 370917)
Quizas sea por que uso windows 7 o no se

Puede ser; Yo lo he probado en XP; No había tenido en cuenta ese detalle.


La franja horaria es GMT +2. Ahora son las 15:23: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