程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> delphi制作的托盤程序

delphi制作的托盤程序

編輯:Delphi

  unit uMain;

  interface

  uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, shellapi,
    Menus, Buttons, ExtCtrls;
  const
    mousemsg = wm_user + 1;
    iid = 100;
  type
    TForm1 = class(TForm)
      MainMenu1: TMainMenu;
      Panel1: TPanel;
      SpeedButton1: TSpeedButton;
      SpeedButton6: TSpeedButton;
      SpeedButton7: TSpeedButton;
      SpeedButton8: TSpeedButton;
      SpeedButton9: TSpeedButton;
      SpeedButton10: TSpeedButton;
      PopupMenu1: TPopupMenu;
      exit1: TMenuItem;
      SpeedButton2: TSpeedButton;
      procedure SQLLMClick(Sender: TObject);
      procedure N2Click(Sender: TObject);
      procedure SpeedButton1Click(Sender: TObject);
      procedure FormClose(Sender: TObject; var Action: TCloseAction);
      procedure FormCreate(Sender: TObject);
      procedure exit1Click(Sender: TObject);
    private
      { Private declarations }
        procedure mousemessage(var message: tmessage); message
        mousemsg;
    public
      { Public declarations }
      procedure exec(sender: tobject);
    end;

  var
    Form1: TForm1;
    ntida: TNotifyIcondataA;
  implementation

  {$R *.DFM}
  procedure TForm1.mousemessage(var message: tmessage);
  var
    mousept: TPoint;
  begin
    inherited;
    if message.LParam = wm_rbuttonup then begin
        getcursorpos(mousept);
        popupmenu1.popup(mousept.x, mousept.y);
      end;
    if message.LParam = wm_lbuttonup then begin
        ShowWindow(Handle, SW_SHOW);
        ShowWindow(Application.handle, SW_SHOW);
        SetWindowLong(Application.Handle, GWL_EXSTYLE,
          not (GetWindowLong(Application.handle, GWL_EXSTYLE)
          or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW));
      end;
    message.Result := 0;
  end;
  

  Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  begin
    Action := caNone;
    ShowWindow(Handle, SW_HIDE);
    ShowWindow(Application.Handle, SW_HIDE);
    SetWindowLong(Application.Handle, GWL_EXSTYLE,
      not (GetWindowLong(Application.handle, GWL_EXSTYLE)
      or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW));
  end;

  procedure TForm1.FormCreate(Sender: TObject);
  begin
    ntida.cbSize := sizeof(tnotifyicondataa);
    ntida.Wnd := handle;
    ntida.uID := iid;  ntida.uFlags := nif_icon + nif_tip +
      nif_message;  ntida.uCallbackMessage := mousemsg;
    ntida.hIcon := Application.Icon.handle;
    ntida.szTip := 'Icon';
    shell_notifyicona(NIM_ADD, @ntida);
  end;

  procedure TForm1.exit1Click(Sender: TObject);
  begin
    ntida.cbSize := sizeof(tnotifyicondataa);
    ntida.wnd := handle;
    ntida.uID := iid;
    ntida.uFlags := nif_icon + nif_tip + nif_message;
    ntida.uCallbackMessage := mousemsg;
    ntida.hIcon := Application.Icon.handle;
    ntida.szTip := 'Icon';
    shell_notifyicona(NIM_DELETE, @ntida);
    Application.Terminate;
  end;

  end.
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved