unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,shellapi, StdCtrls, Menus;
const
  WM_MIDASICON    = WM_USER + 1;
  UI_INITIALIZE   = WM_MIDASICON + 1;
  
type
  TForm1 = class(TForm)
    Button1: TButton;
    PopupMenu: TPopupMenu;
    dfdsf1: TMenuItem;
    dsfdsfsa1: TMenuItem;
    trtyty1: TMenuItem;
    Exit1: TMenuItem;
    procedure dfdsf1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure dsfdsfsa1Click(Sender: TObject);
    procedure trtyty1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
  private
    { Private declarations }
    procedure WMMIDASIcon(var Message: TMessage);Message WM_MIDASICON;
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  FIconData:TNotifyIconData ;implementation{$R *.dfm}procedure TForm1.WMMIDASIcon(var Message: TMessage);
var
  pt: TPoint;
begin
  case Message.LParam of
    WM_RBUTTONUP:
    begin
        //SetForegroundWindow(Handle);
        GetCursorPos(pt);
        PopupMenu.Popup(pt.x, pt.y);
    end;
  end;
end;procedure TForm1.dfdsf1Click(Sender: TObject);
begin
  self.WindowState:=wsMaximized;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
    with FIconData do
    begin
      cbSize := SizeOf(FIconData);
      Wnd := Self.Handle;
      uID := $DEDB;
      uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
      hIcon := Forms.Application.Icon.Handle;
      uCallbackMessage := WM_MIDASICON;
      StrCopy(szTip, PChar(Caption));
    end;
    Shell_NotifyIcon(NIM_Add, @FIconData);
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
   Shell_NotifyIcon(NIM_DELETE, @FIconData);
end;procedure TForm1.dsfdsfsa1Click(Sender: TObject);
begin
  self.Show;
end;procedure TForm1.trtyty1Click(Sender: TObject);
begin
  self.Hide;
end;procedure TForm1.Exit1Click(Sender: TObject);
begin
  self.Close;
end;end.