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

delphi 讓程序在狀態欄運行

編輯:Delphi

自己寫的關於程序在狀態欄相關操作,只列出了主要部分,大家自己琢磨吧!

 


const
  mymsg= wm_user + 1;   //定義消息鍵值

 

 

type


  TMainForm = class(TForm)

      ......


  private
    { Private declarations }
    procedure mymessage(var message:tmessage); message mymsg;   //定義接收自定義消息後的功能


var
  MainForm: TMainForm;
  ntid: TnotifyIconDataA;

 


procedure TMainForm.FormCreate(Sender: TObject);

begin
  //讓程序不在任務欄中顯示

  SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

     ntid.cbsize := sizeof(TnotifyIconDataA);
     ntid.Wnd := Handle;
     ntid.uID := 100;
     ntid.uFlags := NIF_ICON + NIF_TIP + NIF_MESSAGE;
     ntid.uCallbackMessage := mymsg;
     ntid.hIcon := image1.Picture.Icon.Handle;   //Application.Icon.handle 系統圖標
     ntid.szTip := 'SMS系統服務平台';
     shell_notifyicona(NIM_ADD,@ntid);
     self.Visible := false;

end;

 


狀態圖表操作:


   ntid.hIcon := image2.Picture.Icon.Handle;     //顯示工作圖標
   shell_notifyicona(NIM_MODIFY,@ntid);

   ntid.hIcon := image1.Picture.Icon.Handle;     //顯示工作停止圖標
   shell_notifyicona(NIM_MODIFY,@ntid);

  shell_notifyicona(NIM_DELETE,@ntid);   //刪除圖標,退出程序時用

 


窗口操作:

  ShowWindow(MainForm.Handle,SW_HIDE);  //隱藏主窗口
  ShowWindow(MainForm.Handle,SW_SHOW);  //顯示主窗口

 

 


//自定義消息操作功能:


procedure TMainForm.mymessage(var message: tmessage);   //接收自定義消息,右鍵顯示PopupMenu
var
  mypt:Tpoint;
begin
  Inherited;
  if message.LParam = WM_RBUTTONUP then begin
     getCursorPos(mypt);
     PM1.Popup(mypt.X, mypt.Y);
  end;
  message.Result := 0;
end;

 

 

 

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