![]() |
Saber la posicion de tu aplicacion en el Systray
Hola, como sabran podemos mover la barra de tareas (taskbar) y ponerla donde queramos. Esto me supone un problema, xk necesito saber la posicion exacta de el icono que colocare en el systray de mi aplicacion para poder mostrar una ventana (como el MSN cuando alguien se conecta o te habla).
Espero vuestra ayuda. Un saludo. |
Colocar la ventana relativa a la posición exacta del icono, aunque supongo que se puede hacer, se me hace un poco excesivo. Yo la colocaría simplemente de acuerdo la posición de la barra de tareas (ésta determina la equina donde se encuentra el área de iconos) y eso lo puedes hacer así:
// Saludos |
Bueno como dijo el ilustre señor Esperalta "ratón que conoce un agujero sólo pronto le caza el gato", así que vamos a ver cuantos agujeros encontramos.
La primera solución podría ser obtener las coordenadas del propio systray:
O incluso si queremos dejar aparte el área destinada al reloj y solo obtener la destinada a los iconos, podemos afinar un poco más el código:
Un ejemplo de las dos funciones anteriores seria el siguiente:
Pero ahora que tenemos las coordenadas de la bandeja del sistema, pienso que en realidad no te hace falta para nada :p . Porque lo realmente bonito son esos globitos amarillos que muestran algunos iconos para notificar algo, seguro que los has visto alguna vez. Y para mostrarlos solo hay que usar un par de funciones de la API y ellas se encargan de todo el trabajo. ¿que opinas? |
1 Archivos Adjunto(s)
Adjunto un pequeño ejemplo de un formulario que ya tiene interconstruido el comportamiento animado y ajustado a la esquina que corresponda según la orilla del monitor donde se encuentre la barra de tareas. Para mostrarla ya sólo hay que usar su método Show o poner su propiedad Visible en true.
En el zip se encuentra un ejecutable pero éste sólo se puede usar si se tiene instalado Delphi 7, si no es así, basta compilarlo. // Saludos |
Ahora que veo el código de roman, creo que entendí mal lo que buscaba kloud. Aunque sigo diciendo que los globitos son una manera muy "bonita" de mostrar notificaciones.
Y solo por molestar ;) , en donde usas, por ejemplo
No podríamos usar:
|
De hecho es lo primero que pensé pero no estoy muy seguro porque me imagino que esas ventanas de notificación suelen salir pegadas a la barra de tareas. Si usamos WorkAreaRect y hay más barras de aplicación, puede ser que la ventana ya no quede pegada a la barra de tareas.
// Saludos |
La franja horaria es GMT +2. Ahora son las 18:32:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi