unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ShellApi;
const
  WM_BARICON = WM_USER + 200;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
  function createNotifyIcon:PNotifyIconData; //创建托盘图标
  procedure deleteNotifyIcon(lpData:PNotifyIconData); //删除托盘
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  AppniData:PNotifyIconData = nil; //应用程序图标implementation{$R *.dfm}
function Tform1.createNotifyIcon:PNotifyIconData;
var lpData:PNotifyIconData;
begin
    lpData := new(PNotifyIconDataA);
    lpData.cbSize := 88;
    lpData.Wnd := Form1.Handle;
    lpData.hIcon := Form1.Icon.Handle;
    lpData.uCallbackMessage := WM_BARICON;
    lpData.uID := 0;
    lpData.szTip := '点击恢复窗口';
    lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
    Shell_NotifyIcon(NIM_ADD, lpData);
    dispose(lpData);
    result :=  lpData;
end;
procedure TForm1.deleteNotifyIcon(lpData:PNotifyIconData);
begin
   Shell_NotifyIcon(NIM_DELETE,@lpData);
   dispose(lpData);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
   AppniData := createNotifyIcon();
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   deleteNotifyIcon(AppniData);
end;end.
就是窗口创建的时候创建一个托盘
关闭的时候关闭托盘运行的时候报错了   大家帮我分析一下  哪里有问题啊  谢谢了