亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? delphi托盤編程實戰(zhàn)演練.txt

?? 系統(tǒng)托盤實現 delphi 會自動顯示托盤程序
?? TXT
字號:
Delphi托盤編程實戰(zhàn)演練         DavidLove(原作)       
        
  關鍵字           RAD   托盤編程   任務欄   消息機制     
        
    
    
          很多人認為Delphi是一個RAD工具,包括我本人在上學的時候對Delphi也有偏見,現在走出了“象牙塔”,涉及的面廣了,遇到的問題多了,慢慢地也有了自己的一點心得體會。其實,Delphi是基于Object   Pascal   語言的開發(fā)工具,也就是說Delphi本質上是一種語言工具,并且是真正的面向對象的。下面我舉的例子就是用Delphi實現的一個托盤小程序。程序短小精悍,脈絡分明,我將對關鍵部分進行詳細講解。就象候俊杰先生把MFC一層一層地剝開一樣,今天我也來一次“庖丁解?!?。   
    
        在Delphi中涉及到系統(tǒng)編程的方面毫無例外都要調用API函數,在ShellAPI.pas單元中有要用到的API函數的原型。   
    
  實戰(zhàn)演練:   
    
  一.新建一個應用程序:File->New   Applicaton   在Interface部分定義一個消息常量:const   WM_NID=WM_USER+1000;   系統(tǒng)規(guī)定從WM_USER開始為用戶自定義消息。   
    
  二.定義一個全局變量:   NotifyIcon:TNotifyIconData,NotifyIcon是非常重要的一個變量,整個程序基本上是圍著這個變量在轉。TNotifyIconData是一個記錄類型,按住Ctrl鍵,在TNotifyIconData   雙擊即進入ShellAPI.pas單元。(注:在Delphi中,這是一個非常好的對源代碼進行分析的方法,源代碼說明一切,你要想知道程序背后的內幕,最好的方法就是分析源代碼?。┐藭r出現了以下賦值語句:   
    
  TNotifyIconData   =   TNotifyIconDataA,這個意思很明顯,就是說TNotifyIconData和TNotifyIconDataA是同種數據類型,接著往下看有:   
    
  TNotifyIconDataA   =   _NOTIFYICONDATAA,意思與剛才的一樣,再往下看:       
    
  type   
    
  _NOTIFYICONDATAA   =   record   
    
                cbSize:   DWORD;   
    
                Wnd:   HWND;   
    
                uID:   UINT;   
    
                uFlags:   UINT;   
    
                uCallbackMessage:   UINT;   
    
                hIcon:   HICON;   
    
  szTip:   array   [0..63]   of   AnsiChar;   
    
  end;   
    
  這可真是“千呼萬喚始出來,猶抱琵琶半遮面”?,F在大家很清楚了,我們剛才定義的全局變量NotifyIcon其實是一個包含有7個成分的記錄類型變量,就相當于C/C++中的結構體變量(C/C++的程序員應該是再熟悉不過了)。下面我們逐個來解釋記錄類型中的7個部分各有什么功能。   
    
  1>                 cbSize就是你定義的NotifyIcon變量的大小,用SizeOf(TNotifyIconData)可以取得,如果你是一個熟練的C/C++程序員,你應該不會陌生。在C/C++中,每當要為一個結構體變量分配內存的時候都要:通過   SizeOf(Struct   type)   來獲知存放一個這樣的結構體變量要多少內存。   
    
  2>                 Wnd是一個句柄,你希望托盤程序產生的消息有哪個窗體來處理就讓Wnd指向那個窗體。   
    
  例如:你準備在任務欄的托盤小圖標上單擊時窗體是窗體在“顯示”和“隱藏”之間切換,則把Wnd指向主窗體。   
    
  3>     uID:如果你要創(chuàng)建多個托盤小程序,那么怎么區(qū)分它們呢?就是靠這個ID號來區(qū)分。   
    
  3>                 uFlags是一個標志位,它表示當前所創(chuàng)建的托盤程序具有哪些性質:   
    
  NIF_ICON                     表示當前所設置的圖標(即hIcon的值)是有效的     
    
  NIF_MESSAGE     表示當前所設置的系統(tǒng)消息(即uCallBackMessage的值)是有效的   
    
  NIF_TIP                     表示當前所設置的提示條(即szTip的值)是有效的。   
    
  4>                 uCallBackMessage這是7個部分里面最重要的一個。這里指定一個回調消息,也就是說這里定義一個消息名,當你單擊或者右擊托盤圖標的時候就會向你在Wnd所指向的窗體發(fā)送一個在uCallBackMessage中定義的消息名,然后你在程序中定義一個消息出來函數來處理這個消息。這樣就把Windows關于消息的整套流程都處理好了。     
    
  6>       hIcon為托盤圖標的句柄,根據這個句柄你就可以增加、修改、刪除圖標。   
    
  7>               szTip就是當你的鼠標放到任務欄托盤的小圖標上的時候彈出來的提示信息。   
    
  在這里我花了大量的筆墨介紹TNotifyIconData的內幕,把這部分搞清楚了,后面的東西就順理成章了。   
    
  三.   雙擊主窗體,進入FormCreate的代碼區(qū)域:   
    
  TForm1.FormCreate(Sender:TObject);   
    
          Begin   
    
                  //NotifyIcon為全局變量,在程序的開頭已經定義了   
    
                  with   NotifyIcon   do   
    
                  begin   
    
      cbSize:=SizeOf(TNotifyIconData);   
    
      Wnd:=Handle;       //指向當前窗體Form1的句柄   
    
  uID:=1;   
    
      uFlags:=NIM_ICON   or   NIM_MESSAGE   or   NIM_TIP;   
    
      uCallBackMessage:=WM_NID;   
    
      hIcon:=Application.Icon.Handle;   
    
      szTip:=”張家惡少”;   
    
  end;.   
    
  //把設置好的變量NotifyIcon加入到系統(tǒng)中以便處理   
    
  Shell_NotifyIcon(NIM_ADD,@NotifyIcon);   
    
        End;   
    
  四.接下來就是定義一個消息處理函數:系統(tǒng)給窗體發(fā)來了一個消息,就由下面這個函數來處理。每個消息處理函數都是處理某一類消息的,大家仔細地看看下面函數體的定義和一般的函數定義有什么不一樣:消息處理函數要在后面加上消息的名稱,這樣當系統(tǒng)發(fā)來WM_NID消息時,就是自動觸發(fā)WMNID消息處理函數。   
    
  procedure   WMNID(var   msg:TMessage);message   WM_NID;   
    
                begin   
    
                  case   msg.LParam   of   
    
                      WM_LBUTTONUp;   Form1.Visible:=not   Form1.Visible;   
    
                        WM_RBUTTONUP:   ShowMessage(‘您點擊的是右鍵’);   
    
                  End;   
    
  End;   
    
  好了,一個最簡單的程序誕生了,大家自己設置好自己喜歡的圖標.   
    
  Project->Options,選中Application頁面,在Icon項中加載自己喜歡的圖標,這樣程序運行時,在任務欄里顯示的就是你喜歡的圖標了。當你單擊圖標時,窗體Form1會在可見與不可見之間切換,也就是說單擊一下顯示,再單擊一下又隱藏。當你右擊圖標的時候會彈出一條消息:“你點擊的是右鍵”。   
    
  五.最后要記住在關閉應用程序的時候要釋放掉建立的托盤程序,否則會占用系統(tǒng)資源。   
    
  TForm1.FormDestroy(Sender:TObject);   
    
  Begin   
    
      Shell_NotifyIcon(NIM_DELETE,@NotifyIcon);   
    
  End;     
    
  畢業(yè)快半年了,很多東西在學??偫斫獠涣?,認識不夠深刻;出到社會,接觸了不少道中朋友,受益非淺,每有心得體會,總想寫成文字,一來總結自己學的東西,二來和大家共同交流。 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色激情网站| 国产精品美女久久久久久久久久久| 欧美另类高清zo欧美| 91精品午夜视频| 久久久www成人免费毛片麻豆| 国产日韩一级二级三级| 亚洲人吸女人奶水| 久久se这里有精品| 91免费观看在线| 欧美日韩国产在线播放网站| 久久久亚洲午夜电影| 亚洲综合男人的天堂| 韩国精品一区二区| 在线免费观看成人短视频| 日韩视频一区二区| 亚洲视频一区在线| 久久精品国产亚洲高清剧情介绍| 菠萝蜜视频在线观看一区| 91.com视频| 亚洲天堂a在线| 国产一区二三区好的| 欧美午夜影院一区| 欧美国产精品一区二区三区| 亚洲成人福利片| 成人免费av资源| 日韩精品一区二区三区在线播放| 亚洲视频狠狠干| 国产一区二区三区免费播放 | 亚洲精品在线网站| 一区二区三区资源| 国产激情视频一区二区在线观看| 欧美日韩国产高清一区二区| 中文字幕av一区二区三区| 看国产成人h片视频| 欧美影院精品一区| 国产精品理论片| 国产在线精品不卡| 91精品欧美福利在线观看| 一区二区三区蜜桃| 成人福利电影精品一区二区在线观看| 欧美一区二区视频网站| 夜夜爽夜夜爽精品视频| voyeur盗摄精品| 久久久亚洲精品石原莉奈| 日本v片在线高清不卡在线观看| 一本久久精品一区二区| 中文字幕免费在线观看视频一区| 欧美自拍偷拍一区| 中文字幕一区二区三区视频| 国产一区不卡在线| 日韩精品一区二| 日本不卡一二三区黄网| 精品视频一区三区九区| 亚洲免费av观看| 91免费国产在线观看| 中文字幕亚洲在| 成人爽a毛片一区二区免费| 亚洲精品一区二区三区在线观看| 日本成人在线看| 欧美精品成人一区二区三区四区| 一区二区三区国产精华| av亚洲精华国产精华精| 国产精品色呦呦| 成人激情图片网| 国产精品三级在线观看| 国产mv日韩mv欧美| 久久精品在线观看| 国产高清亚洲一区| 国产视频一区在线观看| 国产成人精品三级麻豆| 国产亚洲精品久| 国产成人av电影在线观看| 国产亚洲欧美日韩在线一区| 国产一区二区视频在线播放| 26uuu欧美日本| 国产美女精品人人做人人爽| 久久精品水蜜桃av综合天堂| 国产成人小视频| 国产精品高潮呻吟久久| 95精品视频在线| 亚洲精品欧美综合四区| 欧美性猛交xxxxxxxx| 亚洲h动漫在线| 欧美大片国产精品| 国产乱码一区二区三区| 国产欧美日韩久久| 99精品久久99久久久久| 亚洲在线成人精品| 欧美丰满少妇xxxbbb| 激情成人午夜视频| 国产精品私人自拍| 色综合激情五月| 天使萌一区二区三区免费观看| 日韩一区二区三区电影 | ww亚洲ww在线观看国产| 国产一区三区三区| 亚洲视频免费看| 91麻豆精品国产自产在线| 久久99最新地址| 国产精品免费视频一区| 欧洲另类一二三四区| 免费人成精品欧美精品| 久久久久久久综合| 97久久精品人人做人人爽| 亚洲一区二区在线观看视频| 欧美一级视频精品观看| 国产91丝袜在线播放九色| 亚洲精品国产无套在线观| 69堂国产成人免费视频| 国产精品88888| 一区二区三区精品| 欧美精品一区二区三区高清aⅴ| 懂色av一区二区三区蜜臀| 一区二区高清在线| 精品国产髙清在线看国产毛片| 成人污污视频在线观看| 午夜国产不卡在线观看视频| 国产三级久久久| 欧美色网一区二区| 91精品国产一区二区三区香蕉| 国产精品一区二区三区99| 亚洲激情一二三区| 久久综合色婷婷| 欧美在线不卡一区| 国内精品国产成人国产三级粉色| 亚洲人成精品久久久久| 日韩免费一区二区三区在线播放| 99久久精品国产精品久久| 麻豆精品一区二区综合av| 亚洲天堂成人在线观看| 欧美精品一区二区三区视频| 色天天综合色天天久久| 国产精品综合在线视频| 亚洲成人av免费| 国产精品久久午夜夜伦鲁鲁| 制服丝袜激情欧洲亚洲| 99精品视频中文字幕| 久久不见久久见免费视频7| 一区二区三区高清不卡| 国产拍揄自揄精品视频麻豆| 欧美理论在线播放| 91影视在线播放| 国产成人综合亚洲91猫咪| 日韩av网站在线观看| 亚洲精品午夜久久久| 国产欧美日韩精品一区| 日韩欧美国产综合一区| 欧美日韩在线三区| 97超碰欧美中文字幕| 狠狠色狠狠色合久久伊人| 日韩中文字幕不卡| 一区二区三区四区在线免费观看 | 国产成人精品一区二| 日韩国产在线一| 一区二区成人在线| 中文字幕一区二区不卡| 国产蜜臀97一区二区三区| 日韩三级中文字幕| 8v天堂国产在线一区二区| 91麻豆福利精品推荐| 成人美女视频在线看| 福利视频网站一区二区三区| 国产一区二区女| 久久精品久久综合| 日本vs亚洲vs韩国一区三区| 亚洲国产欧美在线人成| 一区二区三区在线播放| 一区二区三区国产| 一区二区三区电影在线播| 综合在线观看色| 国产精品乱人伦| 国产精品色噜噜| 中文字幕在线免费不卡| 欧美高清在线精品一区| 久久久精品免费观看| 2022国产精品视频| 欧美精品一区二区久久婷婷| 日韩美女一区二区三区四区| 欧美一区二区免费视频| 欧美精品乱码久久久久久| 欧美日韩免费在线视频| 欧美日韩国产欧美日美国产精品| 欧美午夜精品电影| 欧美日韩精品一区视频| 欧美精品自拍偷拍动漫精品| 欧美日韩视频在线观看一区二区三区 | 欧美日韩电影在线| 在线不卡a资源高清| 日韩一区二区视频在线观看| 日韩一区二区影院| 26uuu亚洲综合色欧美| 久久久国产综合精品女国产盗摄| 国产午夜精品理论片a级大结局 | 不卡在线观看av| 欧美r级电影在线观看| 久久久久久日产精品| 国产农村妇女毛片精品久久麻豆 | 欧美性受xxxx| 欧美精品日韩精品| 久久蜜桃一区二区|