In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

NotifyIcon

Foro público de Xailer en español
Responder
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

NotifyIcon

Mensaje por fredy[1] »

Hola,
Alguien tiene un ejemplo de cómo se usa la clase NotifyIcon?
Al ejecutar el programa me sale el error:
TFORM1:CREATEFORM(35)
Error BASE/1005 Class: 'NIL' has no property: NWIDTH
Argumentos: ( [ 1] = Tipo: N Valor: 16)
El CreateForm tiene:
WITH OBJECT ::oNotifyIcon1 := TNotifyIcon():New( Self )
WITH OBJECT :oImageList
:nWidth := 16
:nHeight := 16
:Add( "PAJARITA" )
END
:oMenu := ""
:lVisible := .T.
:Create()
END
Un saludico,
Fredy
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

NotifyIcon

Mensaje por fredy[1] »

Montando el oImagelist directamente desde el prg parece que he conseguido hacer algo.
Me he olvidado del oImageList desde el IDE y en el FormInitializate he puesto
-----------
With Object ::oNotifyIcon1
:AddIcon( "pajarita" )
:SetIcon( 1)
End
-----------
Del mismo modo, he creado el menú desde código, poniendo
----------
Local oMenu
MENU oMenu
MENUITEM "&Facturar" ACTION msginfo("1")
MENUITEM "&Borrar Factura" ACTION msginfo("2")
MENUITEM "&Recibo franquicia" ACTION msginfo("3")
ENDMENU
------
y al pulsar el botón derecho sobre el icono, el menú salir sale, pero sin texto. Si me desplazo por él y pincho me ejecuta el action.
Adjunto img de cómo se ve.
No termino de cazar muy bien la idea de para qué el NotifyIcon, bueno sí­ que la entiendo, pero no sé si Xailer va ha hacer todo lo que quiero.
La idea es que al minimizar la ventana principal de la aplicación se muestre el icono en la barra de tareas, pero TAMBIEN que desaparezca de la barra inferior de elementos minimizados. En algunos sitios lo llaman hideontray.
Es como hacen por ejemplo los antivirus, que se queda el icono el la traybar pero desaparece de los elementos minimizados. ¿puede hacerse eso?
Hacerse seguro que se puede, la cosa es cómo se hace.
Un saludico,
Fredy.
--

Attached files
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

NotifyIcon

Mensaje por jfgimenez »

Fredy,
> y al pulsar el botón derecho sobre el icono, el menú salir sale, pero
> sin texto. Si me desplazo por él y pincho me ejecuta el action.
> Adjunto img de cómo se ve.
Te falta la cláusula POPUP en la definición del menú:
MENU oMenu POPUP
...
> No termino de cazar muy bien la idea de para qué el NotifyIcon, bueno
> sí que la entiendo, pero no sé si Xailer va ha hacer todo lo que quiero.
> La idea es que al minimizar la ventana principal de la aplicación
> se muestre el icono en la barra de tareas, pero TAMBIEN que desaparezca
> de la barra inferior de elementos minimizados. En algunos sitios lo llaman
> hideontray.
> Es como hacen por ejemplo los antivirus, que se queda el icono el la
> traybar pero desaparece de los elementos minimizados. ¿puede hacerse eso?
> Hacerse seguro que se puede, la cosa es cómo se hace.
El "truco" para hacer eso es ocultar la(s) ventana(s) de la aplicación y
mostrar el NotifyIcon. El IDE lo hace así. Al ocultar las ventanas de la
aplicación, desaparece el botón de la barra de tareas.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

NotifyIcon

Mensaje por ignacio »

Fredy,
Con este Email te mando el módulo corregido.
Un saludo,
"Fredy" <fredy@airtel.net> escribió en el mensaje
news:[email=a20b86f227e28c7fe3882bad4f0@news.xailer.com...]a20b86f227e28c7fe3882bad4f0@news.xailer.com...[/email]
> Hola,
>
> Alguien tiene un ejemplo de cómo se usa la clase NotifyIcon?
>
> Al ejecutar el programa me sale el error:
>
> TFORM1:CREATEFORM(35)
> Error BASE/1005 Class: 'NIL' has no property: NWIDTH
> Argumentos: ( [ 1] = Tipo: N Valor: 16)
>
> El CreateForm tiene:
>
> WITH OBJECT ::oNotifyIcon1 := TNotifyIcon():New( Self )
> WITH OBJECT :oImageList
> :nWidth := 16
> :nHeight := 16
> :Add( "PAJARITA" )
> END
> :oMenu := ""
> :lVisible := .T.
> :Create()
> END
>
>
> Un saludico,
> Fredy
>
>


Attached files notifyicon.rar (3.9 KB)Â
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

NotifyIcon

Mensaje por Fredy »

Así­ da gusto: Fácil, sencillo y además funciona.
Un saludico,
Fredy
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

NotifyIcon

Mensaje por Fredy »

Funciona perfecto, gracias.
Estarí­a bien que al seleccionar un oImageList la propiedad nImage se pusiera
a 1. He estado un rato dándole vueltas a por qué no me salá el icono y al
final me he dado cuenta de que nImage estaba a 0
Un saludico,
Fredy
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

NotifyIcon

Mensaje por Fredy »

Hola,
Me he dado cuenta de que con la modificación que me enviaste funciona, pero
cada vez que entro en xailer y cargo el programa se pierde el contanido de
la propiedad oImageList y tengo que especificar de nuevo el nombre del recurso
que quiero como icono.
Un saludico,
Fredy
Responder