Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Icono en la barra de tareas (Tray) (https://www.clubdelphi.com/foros/showthread.php?t=80545)

Neftali [Germán.Estévez] 30-06-2006 12:59:37

Icono en la barra de tareas (Tray)
 
Cómo colgar un icono en la barra de tareas mediante código.

Aunque pueda resultar más engorroso, colgar el icono de nuestra aplicación en la barra de tareas mediante código no tiene nada de dificil. Tan solo hay que preveer que tal icono necesitará comunicarse con nuestra aplicación mediante un mensaje windows de aviso ante eventos y del icono que queramos colgar.

Previamente deberemos definir el identificador de nuestro mensaje y las variables necesarias :

Código Delphi [-]
const WM_ICONCLICKED = WM_USER + 100;
         NIM_ICON_ID    = 1;    // solo ponemos un icono
  
TForm1 = class( TForm )
  ...
  private
    NotifyInfo : TNotifyIconData;
    Procedure    IconClicked( Var Msg: TMessage ); Message WM_ICONCLICKED;

Y definir nuestro procediemiento :

Código Delphi [-]
procedure TForm1.ColgarIcono;
begin
  With NotifyInfo Do Begin
       cbSize := SizeOf(NotifyInfo);
       Wnd    := Handle;      // Ventana a la que se enviarán los mensajes
       uID    := NIM_ICON_ID; // Identificador del Icon en la barra
       uFlags := NIF_ICON Or NIF_MESSAGE Or NIF_TIP;
       uCallbackMessage := WM_CONCLICKED;     // Mensaje que deberá generar
       hIcon  := Icon.Handle;                 // Icono que se mostrará
       szTip  := 'Icono en su puesto';        // Texto indicativo
  end;
  Shell_NotifyIcon(NIM_ADD, @NotifyInfo);     // Añadir Icono
end;

Luego, en el momento deseado solo tendremos que llamar a ColgarIcono, mientras que para quitarlo deberemos hacer lo siguiente :

Código Delphi [-]
Shell_NotifyIcon(NIM_DELETE, @NotifyInfo); // Añadir Icono


La franja horaria es GMT +2. Ahora son las 03:15:08.

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