亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi托盤編程實戰(zhàn)演練

2019-11-18 18:38:06
字體:
供稿:網(wǎng)友
   很多人認為Delphi是一個RAD工具,包括我本人在上學(xué)的時候?qū)?/SPAN>Delphi也有偏見,現(xiàn)在走出了“象牙塔”,涉及的面廣了,遇到的問題多了,慢慢地也有了自己的一點心得體會。其實,Delphi是基于Object Pascal 語言的開發(fā)工具,也就是說Delphi本質(zhì)上是一種語言工具,并且是真正的面向?qū)ο蟮?。下面我舉的例子就是用Delphi實現(xiàn)的一個托盤小程序。程序短小精悍,脈絡(luò)分明,我將對關(guān)鍵部分進行詳細講解。就象候俊杰先生把MFC一層一層地剝開一樣,今天我也來一次“庖丁解?!?。

   在Delphi中涉及到系統(tǒng)編程的方面毫無例外都要調(diào)用API函數(shù),在ShellAPI.pas單元中有要用到的API函數(shù)的原型。

實戰(zhàn)演練:

一.新建一個應(yīng)用程序:File->New ApplicatonInterface部分定義一個消息常量:const WM_NID=WM_USER+1000; 系統(tǒng)規(guī)定從WM_USER開始為用戶自定義消息。

二.定義一個全局變量: NotifyIcon:TNotifyIconData,NotifyIcon是非常重要的一個變量,整個程序基本上是圍著這個變量在轉(zhuǎn)。TNotifyIconData是一個記錄類型,按住Ctrl鍵,在TNotifyIconData 雙擊即進入ShellAPI.pas單元。(注:在Delphi中,這是一個非常好的對源代碼進行分析的方法,源代碼說明一切,你要想知道程序背后的內(nèi)幕,最好的方法就是分析源代碼?。┐藭r出現(xiàn)了以下賦值語句:

TNotifyIconData = TNotifyIconDataA,這個意思很明顯,就是說TNotifyIconDataTNotifyIconDataA是同種數(shù)據(jù)類型,接著往下看有:

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(xiàn)在大家很清楚了,我們剛才定義的全局變量NotifyIcon其實是一個包含有7個成分的記錄類型變量,就相當于C/C++中的結(jié)構(gòu)體變量(C/C++的程序員應(yīng)該是再熟悉不過了)。下面我們逐個來解釋記錄類型中的7個部分各有什么功能。

1>        cbSize就是你定義的NotifyIcon變量的大小,用SizeOf(TNotifyIconData)可以取得,如果你是一個熟練的C/C++程序員,你應(yīng)該不會陌生。在C/C++中,每當要為一個結(jié)構(gòu)體變量分配內(nèi)存的時候都要:通過 SizeOf(Struct type) 來獲知存放一個這樣的結(jié)構(gòu)體變量要多少內(nèi)存。

2>        Wnd是一個句柄,你希望托盤程序產(chǎn)生的消息有哪個窗體來處理就讓Wnd指向那個窗體。

例如:你準備在任務(wù)欄的托盤小圖標上單擊時窗體是窗體在“顯示”和“隱藏”之間切換,則把Wnd指向主窗體。

3>  uID:如果你要創(chuàng)建多個托盤小程序,那么怎么區(qū)分它們呢?就是靠這個ID號來區(qū)分。

3>        uFlags是一個標志位,它表示當前所創(chuàng)建的托盤程序具有哪些性質(zhì):

NIF_ICON          表示當前所設(shè)置的圖標(即hIcon的值)是有效的

NIF_MESSAGE  表示當前所設(shè)置的系統(tǒng)消息(即uCallBackMessage的值)是有效的

NIF_TIP          表示當前所設(shè)置的提示條(即szTip的值)是有效的。

4>        uCallBackMessage這是7個部分里面最重要的一個。這里指定一個回調(diào)消息,也就是說這里定義一個消息名,當你單擊或者右擊托盤圖標的時候就會向你在Wnd所指向的窗體發(fā)送一個在uCallBackMessage中定義的消息名,然后你在程序中定義一個消息出來函數(shù)來處理這個消息。這樣就把Windows關(guān)于消息的整套流程都處理好了。

6>   hIcon為托盤圖標的句柄,根據(jù)這個句柄你就可以增加、修改、刪除圖標。

7>       szTip就是當你的鼠標放到任務(wù)欄托盤的小圖標上的時候彈出來的提示信息。

在這里我花了大量的筆墨介紹TNotifyIconData的內(nèi)幕,把這部分搞清楚了,后面的東西就順理成章了。

三. 雙擊主窗體,進入FormCreate的代碼區(qū)域:

TForm1.FormCreate(Sender:TObject);

    Begin

        //NotifyIcon為全局變量,在程序的開頭已經(jīng)定義了

        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;.

//把設(shè)置好的變量NotifyIcon加入到系統(tǒng)中以便處理

Shell_NotifyIcon(NIM_ADD,@NotifyIcon);

   End;

四.接下來就是定義一個消息處理函數(shù):系統(tǒng)給窗體發(fā)來了一個消息,就由下面這個函數(shù)來處理。每個消息處理函數(shù)都是處理某一類消息的,大家仔細地看看下面函數(shù)體的定義和一般的函數(shù)定義有什么不一樣:消息處理函數(shù)要在后面加上消息的名稱,這樣當系統(tǒng)發(fā)來WM_NID消息時,就是自動觸發(fā)WMNID消息處理函數(shù)。

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;

好了,一個最簡單的程序誕生了,大家自己設(shè)置好自己喜歡的圖標.

Project->Options,選中Application頁面,在Icon項中加載自己喜歡的圖標,這樣程序運行時,在任務(wù)欄里顯示的就是你喜歡的圖標了。當你單擊圖標時,窗體Form1會在可見與不可見之間切換,也就是說單擊一下顯示,再單擊一下又隱藏。當你右擊圖標的時候會彈出一條消息:“你點擊的是右鍵”。

五.最后要記住在關(guān)閉應(yīng)用程序的時候要釋放掉建立的托盤程序,否則會占用系統(tǒng)資源。

TForm1.FormDestroy(Sender:TObject);

Begin

  Shell_NotifyIcon(NIM_DELETE,@NotifyIcon);

End; 

畢業(yè)快半年了,很多東西在學(xué)??偫斫獠涣?,認識不夠深刻;出到社會,接觸了不少道中朋友,受益非淺,每有心得體會,總想寫成文字,一來總結(jié)自己學(xué)的東西,二來和大家共同交流。

E_Mail: zhangyi1980912@sina.com        QQ: 8133413  張家惡少


上一篇:Delphi程序與Chm幫助關(guān)聯(lián)的簡單實現(xiàn)

下一篇:DELPHI的通配符比較(第五版)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

韩国三级在线观看久| 国产 福利 在线| 亚洲国产日韩在线观看| 四季久久免费一区二区三区四区| 日韩高清在线观看一区二区| 亚洲一区二区免费在线| 亚洲激情图片网| 欧美在线播放一区二区| 国产精品午夜在线观看| 国产一二三四五| 日本一区二区三区免费观看| 日韩激情综合网| 日韩av影音先锋| 91精品久久久久久久99蜜桃| 亚洲精品成a人| 国产自产在线视频一区| 欧美激情一区二区三区久久久| 亚洲自拍偷拍一区| 欧美91精品久久久久国产性生爱| 国产精品国产馆在线真实露脸| 亚洲天堂小视频| 在线免费三级电影网站| 精产国品一二三区| 精品无码国产污污污免费网站| 欧美色网一区| 大胆人体色综合| 狠狠色狠狠色综合婷婷tag| 亚洲精品理论电影| 久久超碰97人人做人人爱| yellow视频在线观看一区二区| 日韩中文视频免费在线观看| 亚洲欧美一区二区三区在线| 超碰在线97观看| 色猫咪免费人成网站在线观看| 亚洲一区二区自拍| 美女网站视频久久| 国产亚洲精品成人av久久ww| 亚洲高清在线| 精品亚洲一区二区三区四区| 精品国产乱码久久久久久老虎| 亚洲精品自拍视频| 天天爽天天爽夜夜爽| 亚洲女娇小黑人粗硬| 欧美69xxx| 欧美日韩精品三区| 91精品国产一区| 青青青国产在线视频| 免费黄色av电影| 国产精品传媒视频| 久久综合色鬼综合色| 成人女同在线观看| 免费黄色影片在线| 手机在线不卡av| 9l亚洲国产成人精品一区二三| 欧美成人精品网站| 男人天堂99| 久久精品av麻豆的观看方式| 先锋影音在线播放av| 欧美高清视频不卡网| 欧美日韩一区二区三区在线| 亚洲精品中文字幕在线观看| 国产欧美日韩综合精品一区二区| 亚洲精品免费在线观看视频| 超碰成人免费| 国产亚洲欧美久久久久| 久久久久99精品成人片试看| 亚洲色图偷窥| 综合天堂av久久久久久久| 992tv成人免费影院| 性做久久久久久久久| 免费一级欧美片在线观看网站| 丁香花高清在线观看完整版| 国产福利久久精品| 懂色aⅴ精品一区二区三区蜜月| 欧美一区二区三区红桃小说| 欧美亚洲在线视频| 一本在线免费视频| 亚洲一区视频| 一菊综合网成人综合网| 日韩中文字幕无砖| 国产色爱av资源综合区| 在线精品亚洲一区二区不卡| 成人精品视频在线播放| 久久精品视频在线观看榴莲视频| 欧美一级搡bbbb搡bbbb| 欧美激情区在线播放| 少妇性饥渴无码a区免费| 国产美女精品视频国产| av动漫精品一区二区| 欧美日韩水蜜桃| 在线亚洲一区观看| 精品三级av在线导航| 亚洲精品久久久一区二区三区| 国产免费一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲一级黄色大片| 综合国产精品久久久| 国产91精品一区二区麻豆亚洲| 国产高清一级片| 男人天堂综合| 亚洲日产av中文字幕| 日韩av中文字幕在线免费观看| 天海翼精品一区二区三区| 成人h在线观看| 高清av资源| 国产91精品露脸国语对白| 91在线视频在线| 久久久久国产精品嫩草影院| 男人天堂中文字幕| 亚洲精品国产综合区久久久久久久| 亚洲不卡免费视频| 正在播放亚洲| 色999五月色| 浴室偷拍美女洗澡456在线| 717影院理论午夜伦不卡久久| 国产精品乱码一区二区三区软件| 91精品国产调教在线观看| 国产精品第1页| 电影天堂爱爱爱爱| 精品写真视频在线观看| 日韩电影在线播放| 日本免费黄色小视频| 欧美日韩福利在线观看| 成人黄色av网| 国产亚洲欧美久久久久| 久久最新资源网| 美女网站视频色| 国产电影一区二区三区| 伊甸园亚洲一区| xxx欧美xxx| 久久久综合网| 国产成人免费xxxxxxxx| 亚洲天堂av一区二区| 日韩不卡在线播放| 日本免费黄色小视频| 微拍福利一区二区| 午夜精品亚洲一区二区三区嫩草| 国产欧美久久久| 欧美一区国产在线| 亚洲午夜精品一区二区国产| 亚洲欧美日韩综合aⅴ视频| 国内自拍视频一区| 亚洲精品成人无码熟妇在线| 亚洲特色特黄| www.黄色网| 男人操女人的视频网站| 激情欧美一区二区三区| 久热中文字幕在线精品免费| 天天影视综合| 欧洲一区二区三区免费视频| 国产精品88久久久久久| www.av91| 日韩一二在线观看| 国产乱码精品一区二区三区五月婷| 亚洲欧美色图视频| 久久99久国产精品黄毛片入口| 午夜日韩激情| 亚洲在线一区二区三区| 久久精品一区二区三区四区| 国产在线观看av| 日韩国产专区| 日韩精品久久久久久久的张开腿让| 精品在线不卡| a级一a一级在线观看| 性生交大片免费全黄| 欧美网站免费观看| av毛片在线免费观看| av在线播放av| 日本精品一区二区三区在线播放视频| y4480在线8影院| 黄页网站大全在线免费观看| 日韩欧美亚洲一区二区| 97超碰在线资源站| 黄色aaa大片| avav在线播放| 日韩av一区二区三区四区| 动漫av一区二区三区| 国产欧美日韩另类一区| 五福影院新址进入www1378| 天天干,夜夜爽| 日韩电影免费观| 毛片av一区二区| 亚洲va码欧洲m码| 久久这里只有精品免费| 亚洲天堂精品一区| 国产精品久久久久野外| 亚洲综合av网| 少妇高潮大叫好爽喷水| 国产精品嫩草视频| 变态黄色小视频网站| 久久久久久久97| 日韩一区二区三区免费观看| 欧美午夜免费| 欧美日韩福利电影| 精品久久久久久久| 国产午夜精品视频| 国产日韩欧美二区| 四虎海外影库www4hu| 男人日女人视频网站| 亚洲美女欧洲| www污污在线| 成人免费av资源| 美女的诞生在线观看高清免费完整版中文| 91精品国产自产在线观看永久| 一区二区三区色| 欧美色网在线| 亚洲精品国产拍免费91在线| 国产在线观看免费av| 激情综合五月网| 久播影院第一理论片| 欧美日韩在线观看视频| 亚洲AV无码精品色毛片浪潮| 精品一区久久| 国内偷拍精品视频| 国产91精品在线观看| av网站免费在线播放| 中文字幕不卡在线| 久久99精品久久久久| 国产一区二区三区无遮挡| 欧美在线网站| 无码精品a∨在线观看中文| 国内精彩免费自拍视频在线观看网址| 日本一区二区免费在线| 少妇又色又爽又黄的视频| 中文字幕无乱码| 麻豆成全视频免费观看在线看| 国产清纯白嫩初高生在线观看91| 欧美图片自拍偷拍| 欧美成人精品二区三区99精品| 女人喷潮完整视频| aa视频在线免费观看| 首页亚洲中字| 久久精彩免费视频| 国产成人精品福利一区二区三区| 九九热视频免费| 综合分类小说区另类春色亚洲小说欧美| av一区在线| 人妻激情偷乱视频一区二区三区| 欧美日韩另类一区| 激情综合网婷婷| 国产高清一区在线观看| 国产精品第一第二| 日韩一级二级三级精品视频| 久久精品国产大片免费观看| 国产色在线观看| 在线观看亚洲成人| 国产亚洲精品aa午夜观看| 好吊妞这里只有精品| 一个人看的www片免费高清视频| 亚洲一区自拍偷拍| 奇米777影视成人四色| 91中文字精品一区二区| 亚洲精品中文字幕| 欧美亚洲视频一区| 一级片视频免费看| 久久99精品久久久久久野外| 国产日韩一区二区在线观看| 欧美日韩一区二区免费视频| 欧美亚视频在线中文字幕免费| 丁香视频五月| 国产精品v日韩精品| 在线亚洲午夜片av大片| 蜜桃精品久久久久久久免费影院| 日本中文字幕在线视频| 亚洲 小说 欧美 激情 另类| 亚洲系列另类av| 天天色天天射天天干| 国产欧美一区二区精品仙草咪| 国产成一区二区| 亚洲精品中文字幕乱码三区91| 无码人妻精品一区二区三区温州| 精品视频在线一区二区| 中文字幕av在线一区二区三区| 久久全国免费视频| 黄色网免费看| 亚洲一区二区三区四区五区午夜| 91av在线国产| 欧美精品一区二区三区在线播放| 日韩中文字幕在线一区| 国产精品99一区| 天堂网在线观看在线观看精品| 国产黑丝在线观看| 大桥未久av一区二区三区中文| 亚洲乱码国产乱码精品精大量| 国产精品国语对白| 亚洲国产精品久久人人爱| av在线收看| 成人性生交大片免费看在线播放| 欧美一级欧美三级在线观看| 日韩高清电影免费| 奇米影视亚洲色图| 国产精品自拍一区| 香蕉亚洲视频| www.日韩在线| 欧美色综合天天久久综合精品| 国精产品一区一区二区三区mba| 五月婷婷综合网| 草草视频在线免费观看| 精品国产一区探花在线观看| 韩日欧美一区二区三区| wwwxxx亚洲| 老司机免费视频久久| 一二三四中文字幕| 欧美一区二区日韩一区二区| 国产人成网在线播放va免费| 国产噜噜噜噜噜久久久久久久久| 亚洲精品成人在线| 超碰97久久| 国产网站在线| 欧美日韩国产一二| 亚洲人成无码网站久久99热国产| 永久在线免费观看| 成人欧美一区二区三区在线播放| 色综合久久中文综合久久97| 欧美国产亚洲视频| 天堂精品视频| 亚洲区精品久久一区二区三区| 人人妻人人澡人人爽精品日本| 天堂资源在线中文精品| baoyu777.永久免费视频| 美国黄色一级毛片| 中国女人真人一级毛片| 91精品国产高清一区二区三区| 东方欧美亚洲色图在线| 久久精品一二区| 激情久久久久久久久久久久久久久久| 亚洲第一免费网站| 成年人黄色在线观看|