你既然用组件,那最小化就应该自动在托盘啊?
如果自己处理,那就处理最小化事件,然后给FORM。VISIBLE:=FALSE;
就是哪个APPLICATIONEVENT

解决方案 »

  1.   

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      //不出现在任务栏**************************************************************
      //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
      

  2.   

    ShowWindow(MainForm.Handle,sw_hide...);
      

  3.   

    1.这一句写最小化;
    2.Form1->Hide();
      

  4.   

    我的意思是 只要程序运行图标就一直在托盘中,但是在最小化时不出现在应用程序状态栏中。(就是Windows开始按钮旁边)。
      

  5.   

    var
      Form1: TForm1;
      nd0, nd1:NotifyIconData;
      hs:LongWord;implementation
    {$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    begin
      hs:=LoadIcon(hInstance, 'Icon0');
      nd0.cbSize := sizeof(NotifyIconData);
      nd0.Wnd := handle;
      nd0.uID := 0;
      nd0.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
      nd0.uCallbackMessage := WM_TRAYNOTIFY;
      nd0.hIcon:=image1.Picture.Icon.Handle;
      StrPLCopy(nd0.szTip, '医务通软件', 63);
      //在任务栏状态区添加图标
        Application.Initialize();
      application.ShowMainForm:=false;
      ShowWindow(Application.Handle, SW_HIDE);
      form1.WindowState:=wsMinimized;
      Shell_NotifyIcon(NIM_ADD, @nd0);  application.Run;
    end;
      

  6.   

    按下最下化按纽时会发送一个消息WM_XXX(具体消息名忘记了)
    当程序接到消息WM_XXX时,调用方法Hide(隐藏窗体),并将消息WM_XXX屏蔽掉。记得在
    FormCreate中加入函数
    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
      

  7.   

    huangbin(想说放弃不容易!!) 说的没错.
      

  8.   

    ShowWindow(Application.Handle,SW_HIDE);不在任务栏显示
    ShowWindow(Application.Handle,SW_SHOW);在任务栏显示