unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,shellapi, Menus;
const WM_ICONCLICKED = WM_USER + 100;
NIM_ICON_ID = 1;
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
NotifyInfo : TNotifyIconData;
Procedure IconClicked( Var Msg: TMessage ); Message WM_ICONCLICKED;
procedure ColgarIcono(visible:boolean);
public
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;
uID := NIM_ICON_ID;
uFlags := NIF_ICON Or NIF_MESSAGE Or NIF_TIP;
uCallbackMessage := WM_ICONCLICKED;
hIcon := application.Icon.Handle;
szTip := 'Icono en su puesto';
end;
if visible then
msg:=NIM_ADD
else
Msg:=NIM_DELETE;
Shell_NotifyIcon(Msg, @NotifyInfo);
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.