Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-08-2004
Dario Gustavo Dario Gustavo is offline
Registrado
 
Registrado: ago 2004
Posts: 3
Poder: 0
Dario Gustavo Va por buen camino
Ejecucion en Icon Tray

Buenos Dias

Como puedo hacer una aplicacion (en Delphi 5) que al ejecutarla se aloje directamente en el Icon Tray y no se muestre en la barra de tareas ?

Muchas Gracias
Dario.
Responder Con Cita
  #2  
Antiguo 15-08-2004
kalisto kalisto is offline
Miembro
 
Registrado: jul 2004
Posts: 62
Poder: 20
kalisto Va por buen camino
Para que no se muestre en la barra de tareas en el archivo de proyecto tienes que poner lo siguiente:
Código Delphi [-]
Application.ShowMainForm := False;
Para colocar el icono necesitamos la función Shell_NotifyIcon del api de Windows, por lo que en la seccion uses tendremos que
añadir Shellapi.

Para responder a los eventos de raton al pinchar sobre el icono tendremos que crear una funcion que maneje el mensaje de Windows que se produce al situar el puntero del raton sobre el icono.

Posteriormente tendremos que filtrar el evento que nos interese. Esto lo hacemos mediante un popup menu.

Código Delphi [-]
unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls,shellapi, Menus;

const WM_ICONCLICKED = WM_USER + 100;//mensaje a inteceptar

NIM_ICON_ID = 1; // solo ponemos un icono

type

TForm1 = class(TForm)

Button1: TButton;

PopupMenu1: TPopupMenu;

opcion11: TMenuItem;

opcion21: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure opcion11Click(Sender: TObject);

procedure opcion21Click(Sender: TObject);

private

{ Private declarations }

NotifyInfo : TNotifyIconData;

Procedure IconClicked( Var Msg: TMessage ); Message WM_ICONCLICKED;

//Procedimiento que nos notifica de que el puntero esta sobre el icono

procedure ColgarIcono(visible:boolean);//Pone el icono en la bandeja del sistema

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

form1.visible:=false;

ColgarIcono(true);

end;

procedure TForm1.ColgarIcono(visible:boolean);

var

msg:integer;

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_ICONCLICKED; // Mensaje que deberá generar

hIcon := application.Icon.Handle; // Icono que se mostrará

szTip := 'Icono en su puesto'; // Texto indicativo

end;

if visible then

msg:=NIM_ADD

else

Msg:=NIM_DELETE;

 

Shell_NotifyIcon(Msg, @NotifyInfo); // Añadir Icono o quitarlo en funcion de visible

end;

Procedure tform1.IconClicked( Var Msg: TMessage );

var

pt:tpoint;

begin



if msg.lparam=WM_LBUTTONUP then

begin

getcursorpos(pt);

SetForegroundWindow (Handle);

popupmenu1.popup(pt.x,pt.y);



end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

colgarIcono(False);

end;

procedure TForm1.opcion11Click(Sender: TObject);

begin

showwindow(application.handle,SW_SHOW);

form1.visible:=true;

end;

procedure TForm1.opcion21Click(Sender: TObject);

begin

CLOSE;

end;

end.

Responder Con Cita
  #3  
Antiguo 15-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
También podes valerte de algún componente que ya encapsule la creación y mantenimiento del ícono en el Tray, como el TrxTrayIcon de las rusas.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:58:10.


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
Copyright 1996-2007 Club Delphi