Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Icono de un TTrayIcon (https://www.clubdelphi.com/foros/showthread.php?t=92966)

Angel.Matilla 03-04-2018 12:03:26

Icono de un TTrayIcon
 
El icono que se muestra en la barra de inicio con un TTrayIcon, ¿necesariamente tiene que ser a partir de un ImageList? ¿no hay posibilidad de tomarlo del definido en Application->Icon?

Neftali [Germán.Estévez] 03-04-2018 16:30:10

El componente de Delphi tiene la propiedad Icon que admite un Icono.
¿El de C++Builder no es igual?
¿Qué propiedades tiene?


ecfisa 03-04-2018 16:49:23

Hola.

Si, el componente que menciona Neftali está incluido en C++ Builder al menos desde la versión 6 (no tengo acceso a versiones anteriores para verificar).

Si aún así, deseas asignarlo de forma manual, hay un ejemplo que carga el ícono desde recurso en este enlace: tray icon

Saludos :)

Angel.Matilla 03-04-2018 19:01:34

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 525460)
El componente de Delphi tiene la propiedad Icon que admite un Icono.
¿El de C++Builder no es igual?

Por desgracia el componente de Delphi y de Builder 6 es distinto

Cita:

Empezado por ecfisa (Mensaje 525462)
Si aún así, deseas asignarlo de forma manual, hay un ejemplo que carga el ícono desde recurso en este enlace: tray icon

Voy a mirarlo ahora mismo. Gracias a los dos.

ecfisa 03-04-2018 19:22:09

Hola.

A decir verdad, no sé como trabaja en delphi ya que el componente es incorporado en una versión posterior a la que uso (7). Por otro lado, en C++ Builder 6 el componente TTrayIcon se vale de la propiedad Icons al efecto, pero es de tipo TImageList y es justo lo que quieres evitar.

Saludos :)

escafandra 03-04-2018 23:15:17

Hola, Angel. Se que sueles usar versiones antiguar de Builder. Hace un tiempo escribí un componente partiendo del que aportaba Builder 5 que denominé TSysTrayIcon. Ese componente usaba un TImageList para guardar una animación a mostrar como icono, pero si no se asignaba esa propiedad, usaba el icono por defecto de la aplicación. No se si eso es lo que estás buscando. El componente en cuestión está aquí: TSysTrayIcon

Saludos.

Angel.Matilla 04-04-2018 12:18:50

Gracias por las respuestas. Dando vueltas encontré la solución; puede que no sea la mejor, pero funciona.
Código PHP:

void __fastcall TForm1::FormActivate(TObject *Sender)
{
     
TImageList *list = new TImageList(Application->Icon->WidthApplication->Icon->Height);

     try
     {
          list->
AddIcon(Application->Icon);
          
TrayIcon1->Icons     = list;
          
TrayIcon1->IconIndex 0;
     }
     
__finally
     
{
          
delete list;
     }
}
//--------------------------------------------------------------------------- 

No obstante le echaré un ojo a tu componente.

Angel.Matilla 05-04-2018 09:54:05

Cita:

Empezado por escafandra (Mensaje 525469)
El componente en cuestión está aquí: TSysTrayIcon

Una pregunta: ¿Hacen falta los dos ficheros para instalar el componente?

Angel.Matilla 05-04-2018 10:04:38

Lo digo porquer abra el proyecto que abra me da siempre el mismo error.

¿Me hace falta algo más aparte de ese código?

escafandra 05-04-2018 13:07:10

Copia en una carpeta los archivos:
SysTrayIcon.cpp
SysTrayIcon.h
SysTrayIcon.rc
SysTrayIcon.res
SysTrayIcon.rh

Luego abre en Builder la opción de instalar componente en un nuevo package. Lo que sigue es un ejemplo gráfico:




En builder aparecerá una nueva pestaña de componentes llamada Mios, y en ella aparece el nuevo componente ya compilado.

Saludos.

Angel.Matilla 05-04-2018 18:35:28

De acuerdo. Gracias


La franja horaria es GMT +2. Ahora son las 15:06:58.

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