Ventana emergente residente
Buenas, necesito crear un programa residente que dada una codición, visualize un aviso cada cierto tiempo.
La condición y el cierto tiempo está almacenado en una base de datos. Hace muchos años existía un componente en las RxLib. Pero ahora no tengo ni idea de por donde empezar. Si alguien puede tirarme un cable? Gracias |
Pero exactamente qué es lo que necesitas.
|
Y con qué versión estás trabajando.
Las nuevas versiones de Delphi ya traen los componentes que necesitas tanto para mostrar algo en la zona System Tray, como para mostrar notificaciones del sistema a partir de Windows 8/10. Pero tampoco tengo claro que sea lo que necesitas. |
Hola neftali, uso Delphi 7. De momento los pc's tienen W7 pero estamos migrando a W10.
Lo que quiero es que se abra una ventana tipo recordatorio, cuando se cumpla una condición. Gracias |
Cita:
|
Buenas Casemiro, el cuando? un programa residente que se dé una condición en base de datos, po ejemplo, que falta menos de un día, ....
Donde? Podría ser una ventana emergente en la parte inferior derecha de la pantalla, al igual que aparecen ventanas emergentes para actualizar un programa. Por qué? es un recordatorio de tareas que hay que realizar, para que no se les pase. Gracias |
¿Por qué no sigues usando las RXlib?
|
Alguna vez hemos hablado de este componente:
http://torry.net/quicksearchd.php?St....5.0&Title=Yes En este hilo antiguo ya comentaron algo sobre él: http://www.clubdelphi.com/foros/showthread.php?t=15263 Y aquí también; Incluso puedes ver alguna imagen de cómo quedaría. http://www.clubdelphi.com/foros/showthread.php?t=64225 Por último, aquí se habla también de uno que tienen las JVCL, llamado JvDesktopAlert: http://stackoverflow.com/questions/2...active-display |
Pero las RxLib ya están absoletas no? No han sido reemplazadas por las Jedi?
|
Cita:
Yo he probado y compilado las que puedes encontrar aquí: http://neftali.clubdelphi.com/?p=545 Y las últimas (que no he probado personalmente) las puedes encontrar en esta página: http://www.micrel.cz/RxLib/dfiles.htm |
Te muestro un ejemplo de como colocar una notificación en el SysTray con la API, el ejemplo viene de aquí:
Muestro una imagen del diseño del formulario utilizado para este ejemplo. También puedes definir tu propia ventana, como en este otro ejemplo donde uso una ventana desplegable translúcida de un color y posición definidos a voluntad para notificaciones. Saludos. |
Hola.
Como para sumar otro ejemplo, me acorde de este: ...Show Balloon Tips for the Tray Icon? Saludos :) |
Cita:
Para completar, un componente para manejar el SysTray con notificaciones, control del tiempo de notificación, iconos animados y minimización de la app en el Systray que ya se comentó en clubdelphi otras veces.: TSysTrayIcon Saludos. |
Estoy mirando el ejemplo colgado por escafandra, pero no acaba de funcionarme. Tengo que pulsar bastantes veces el botón para que aparezca un instante el balloon.
En principio me gustaría que apareciera el balloon y ofrecer la posibilidad de hacer algo o cerrar Gracias |
1 Archivos Adjunto(s)
Te subo un proyecto y ejecutable.
Saludos. |
Vale!!! genial. Muchas gracias
|
escafandra, pasa exactamente lo mismo. En el código, aunque no lo entiendo, hay unas constantes definidas para Vista, no será que en Windows 7 o posteriores no funciona?
En realidad lo que yo estoy buscando es un mensaje tipo el de java por ejemplo, que aparece el mensaje informando que hay una nueva actualización y tienes dos posibilidades. Eliminar el mensaje o descargar la actualización. Es posible hacerlo? Gracias |
La función está probada en WinXP, Win8.1 y Win10.
Mira a ver la configuración de tu SO. Panel de control -> opciones de accesibilidad->-> Tiempo de Notificaciones Saludos. |
Una cosa más, Para Windows 8 en adelante , y posiblemente Vista, comenta la siguiente línea:
Saludos. |
He visto el componente JvTrayIcon en las Jedi, que hace justo lo lo que busco.
Gracias por la colaboración. |
Algo relacionado con el tema. Sabe alguien si hay manera de forzar que el icono aparezca fijo al lado del reloj y no oculto, de manera que se tenga que pulsar la tecla para visualizarlo?
Gracias. |
Me contesto yo misma, no sé si existe alguna forma desde Delphi, pero he visto que se puede personalizar la lista de iconos ocultos. Pues aquí le indico al programa que muestre el icono y las notiificaciones así aparece fijo.
|
Hola mblascog,
usa el componene TTrayIcon http://docwiki.embarcadero.com/CodeE...yIcon_(Delphi) Tambien si tienes Jedi instalado tiene uno |
Gracias rocksoft. Finalmente he usado el trayicon de las Jedi. Va fantástico.
Mi intención es que el programa que estoy desarrollando inicie con las Windows, hasta ahí ningún problema, pero me gustaría que se iniciara en segundo plano, es decir, que apareciera el icono a la barra de tareas y caso de querer acceder al problema, fuese con dobleclick. Y la verdad, no sé como empezar. Tienes alguna idea? Gracias |
Buenas,
disparando a ciegas, inicia la aplicacion minimizandola, creo que existe una propiedad del trayicon que permite las dos opciones, esconder y poner en la barra. |
Gracias rocksoft, he estado buscando y no soy capaz de encontrar la opción que minimizar o esconder. Corrijo, existe la propiedad HideApplication, pero da error: Cannot change Visible in OnShow or OnHide
|
Hola,
con
lo minimizas |
Rocksoft, esto minimiza la aplicación, y yo la quisiera al systray, y yo quisiera sólo el icono al lado del reloj.
Gracias |
És más, por las dudas, lo acabo de probar y con el tryicon se hace un lío. El programa se minimiza, cosa que no quiero, pero al maximizar. Intento maximizar y aparece una pequeña pantalla a la parte inferior izquierda de la pantalla, con los botones de restaurar, maximizar o cerrar. Restauro para abrir de nuevo el programa, se ve un momento y desaparece. En el systray aparece el icono.
|
Y los ejemplos de escafandra y ecfisa, qué tal.
|
Casemiro, son dos cosas diferentes, colocar el icono en el systray ya lo he conseguido. Lo que busco ahora es iniciar el programa al iniciar Windows y que aparezca en segundo plano, es decir, tener que clicar el icono del systray para acceder al programa.
Iniciarlo con las Windows ningún problema, pero lo que no encuentro es la manera de iniciarlo sin que se vea, sólo el icono, tipo programa antivirus, .... Gracias |
Lo que te ha indicado rocksoft
|
Lo que me ha indicado rocksoft minimiza la aplicación, que no es lo mismo que aparezca el icono en el systray. Lo que quiero es que aparezca al lado del reloz, sólo el icono, como el sonido, red, antivirus y pulsar click, dobleclick, botón derecho, .... lo que sea, para abrir el interface.
Gracias |
He conseguido lo que buscaba siguiendo los pasos de un post de xEsk de 25 de junio de 2008. En lugar de usar las Jedi he usado las RxLib y me ha funcionado
|
Cita:
Cita:
|
Hola Casemiro, no quiero contradecirte pero el componente TRxTrayIcon no dispone de las mismas propiedades que JvTrayIcon. Quizá no lo implementé bien pero no lo conseguí.
En cuanto a lo de minimizar, quizás me he expresado mal, pero no quiero minimizar sinó ocultar, y visualizarla al pulsar sobre el icono Gracias |
Cita:
Cita:
|
Llevas razón que me lo dijiste, pero cómo hago para que aparezca el mensaje emergente, el balloonhint del de las jedi?
|
Andas bastante perdido.
Todas las opciones que se te dieron sirven. Para mis sugerencias, te dije que probaras 1.- TSysTrayIcon 2.- Ventana desplegable translúcida 3.- ShowBalloon. En el último caso y si no usas Win8 o Win 10 (y posiblemente Win7 y Vista) úsalo así:
Saludos. |
escafandra, perdida es poco. El último programa que escribí en Delphi hace muchos años, no sé 10, 15, y la verdad, a pesar de recordar mucho, me cuesta.
Suerte tengo de la ayuda de este foro, y la verdad, lo estoy pasando pipa. Finalmente lo he conseguido siguiendo tus indicaciones, muchísimas gracias. Pero me faltaría una cosa, interesa que no se pueda cerrar el programa, sinó esconderlo. Pensaba que sería fácil, en el onclose del formulario principal, pensaba en action := caHide, pero no funciona. He buscado por el foro, y he encontrado esta explicación de Lepe, del año 2005, pero no la entiendo, no sé que és lo que tengo que hacer. Para salir del paso, y la verdad me está bien, he eliminado los botones del form, y en la opción Salir del menú, he puesto Hide y funciona De nuevo muchas gracias Cita:
|
La franja horaria es GMT +2. Ahora son las 10:42:53. |
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