• 生成任务栏图标


    unit Unit4;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,ComCtrls,ExtCtrls,StdCtrls,ToolWin,ShellApi,Menus, jpeg;

      //define the consts
      const
        WM_MY_Notify=WM_USER+100;


    type
      TForm4 = class(TForm)
        Image1: TImage;
        PopupMenu1: TPopupMenu;

        S1: TMenuItem;
        H1: TMenuItem;
        N1: TMenuItem;
        E1: TMenuItem;
        procedure E1Click(Sender: TObject);
        procedure H1Click(Sender: TObject);
        procedure S1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);


      private
        { Private declarations }
        //the icon data structure...
        TrayIcon:PNOTIFYICONDATA;

        //icon 图像
        Icon:TIcon;

      public
        { Public declarations }
        //自定义消息函数..
        procedure NotifyIconClick(var msg:TMessage);Message WM_MY_Notify;
      end;

    var
      Form4: TForm4;

    implementation

    {$R *.dfm}

    procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    ///**** 释放对象
       Dispose(TrayIcon);
       Icon.free;

    end;

    procedure TForm4.FormCreate(Sender: TObject);
    begin
    //******** 创建对象
        New(TrayIcon);

        TrayIcon.cbSize:=SizeOf(TrayIcon^);

        TrayIcon.uID:=200;
        TrayIcon.wnd:=Handle;
        TrayIcon.uCallbackMessage:=WM_MY_Notify;
        TrayIcon.uFlags:=NIF_ICON+NIF_Tip+NIF_MESSAGE;
        TrayIcon.szTip:='任务栏图标';

        //creat icon...
        Icon:=TIcon.Create;
        Icon.Assign(Image1.Picture);
        TrayIcon.hIcon:=Icon.Handle;

        //生成任务栏图标
        Shell_NotifyIcon(NIM_ADD,TrayIcon);

    end;

    Procedure TForm4.NotifyIconClick(var msg:TMessage);
    var
      p:TPoint;
    begin
      try
        case msg.LParam of

        WM_RBUTTONDOWN:
        begin
          GetCursorPos(p);
          PopupMenu1.Popup(p.X,p.Y);
        end;

      //WM_LBUTTONDOWM:左键按下消息

        end;
      except
      end;

    end;

    procedure TForm4.S1Click(Sender: TObject);
    begin
    //****** file
        Show;
    end;

    procedure TForm4.H1Click(Sender: TObject);
    begin
    //********** edit
        hide;

      {

        s1.Enabled:=false;

        h1.Enabled:=true;

      }
    end;

    procedure TForm4.E1Click(Sender: TObject);
    begin
    //*********** hejp
       close;

      {//更改菜单项的有效性

         h1.Enabled:=false;

        s1.Enabled:=true;

     

      }

    end;

    end.

  • 相关阅读:
    在SplendidCRM中添加用户控件
    SPendidCRM:给HK的ImageInfoEntryEditView增加一个checkbox,用于判断特殊类型的PODS记录
    html button 跳转ASP.NET页面跳转技术总结
    让<li>不显示超出内容,显示... (编程方法和CSS方法)
    SplendidCRM Popup.aspx的hyperlink字段配置的易错点
    asp.net 个别页面URL参数出现中文乱码的解决方法
    解决:工具箱里边没了Dev控件
    DevControlgridview的属性说明 (转)
    DevControlgridview的属性说明 (转)
    VM如何设置U盘启动
  • 原文地址:https://www.cnblogs.com/huking/p/1693284.html
Copyright © 2020-2023  润新知