TTrayIcon 的主要屬性:
一.TTrayIcon->Icon
指定托盤圖示, 有幾種用法:
1、設計時選擇;
2、把一個 TIcon 對象給它;
3、使用目前程式圖示: TrayIcon1->Icon = Application->Icon;
TrayIcon1->SetDefaultIcon();
二.TrayIcon->Icons 與 TrayIcon1->IconIndex
TrayIcon->Icons 對應一個 TImageList,
用 TrayIcon->IconIndex 來指定使用 TImageList 中的第一個圖示.
三.TrayIcon->PopupMenu
TrayIcon->PopupMenu 對應一個 TPopupMenu,
托盤圖示一般少不了右鍵菜單.
四.TrayIcon->Visible
隐藏或顯示系統托盤的圖示; 雖簡單、但關鍵, 因預設是 False.
五.TrayIcon->Hint
随滑鼠指針的提示文本, 這是老式的, 下面有新型的.
TrayIcon->BalloonHint、BalloonTitle、BalloonFlags、BalloonTimeout
這都是新型的 Hint 相關的.
TrayIcon->BalloonHint: 文本
TrayIcon->BalloonTitle: 标題
TrayIcon->BalloonFlags: 圖示樣式
TrayIcon->BalloonTimeout: 停留時間
需要用 TrayIcon 的 ShowBalloonHint 方法啟動顯示
六.TrayIcon.Animate 與 TrayIcon1.AnimateInterval
TrayIcon 的新 Hint(BalloonHint)可設定動畫.
TrayIcon->Animate: 這決定是否啟用動畫
TrayIcon1->AnimateInterval: 動畫間隔時間
TTrayIcon 的主要事件:
OnAnimate: 寫動畫代碼的事件
OnBalloonClick: 點選 BalloonHint 時…
OnClick: 單擊圖示時…
OnDblClick
OnMouseDown
OnMouseMove
OnMouseUp
TTrayIcon 還有兩個方法, 前面都已提到了:
TTrayIcon->SetDefaultIcon;
TTrayIcon->ShowBalloonHint;
下面是兩個執行個體:
一.“氣泡提示”的制作
第一步:在窗體中放置 TrayIcon 控件( Additional 面闆中可以找到)。
第二步:設定 TrayIcon 的 Icon 圖示,載入一個 ICO 檔案。
第三步:設定 TrayIcon 的 BalloonHint 為“ C++builder2010 進階控件應用”,設定 BalloonTitle 為“程式員2017合訂本”。設定 Visible 為 True 。
第四步:輕按兩下窗體,在 OnCreate 事件中寫入下面代碼: TrayIcon1->ShowBalloonHint;
好了, F9 運作程式,一個“氣泡提示”就會出現在圖示上。屬性中的 BalloonTimeout 是設定“氣泡提示”多少秒後消失,預設是 3 秒。
二.動态圖示
我們大家都知道,當有 QQ 消息時,托盤中會有一個閃爍圖示,使用 TrayIcon 控件可以非常容易地實作這個功能。
使圖示動起來,其實就是使用多個圖示進行切換。
QQ 的閃爍圖示,其實就是使用的兩個圖示來進行切換的,一個是頭像圖示,一個是空的圖示。
下面我們就來模拟 QQ 頭像閃爍功能:
第一步:在窗體上放置 ImageList 控件(在 Win32 面闆中可以找到)。
第二步:設定 ImageList 控件的 Width 和 Height 屬性為 32 ,然後輕按兩下 ImageList ,點選“ Add ”按鈕添加圖示檔案。第一個添加的是要顯示的圖示,第二個添加一個空的圖示(可以使用 Image Editor 建立一個 ICO 檔案,然後直接儲存即可得到一個空的圖示。)。
第三步:設定 TrayIcon 的 Icons 屬性為 ImageList1 (可以直接在清單中選擇)。
第四步:在 Form1 的 OnFormShow 事件中加入下面的代碼:
TrayIcon1->Animate = True;
TrayIcon1->AnimateInterval = 450;
當 Animate 為 True 時,将自動按 ImageList 控件中圖示的順序進行依次顯示,形成動态效果。 AnimateInterval 為每隔多少時間顯示下一個圖示。如果要停止閃爍,将 Animate 設定為 False 即可。
需要提到的是:
在Samples元件頁中有一個TCTrayIcon元件,它封裝編寫所需的Window API函數,他有幾個屬性是這個TrayIcon所沒有的。
- Hide設為true時,最小化時隐藏在工作列上的标題欄;
-
PopupMenuOn設定觸發彈出菜單的滑鼠操作
說明:imClick滑鼠單擊
imDoubleClick滑鼠輕按兩下
imLeftClickUp單擊滑鼠左鍵,放開
imLeftDoubleClick輕按兩下滑鼠左鍵
imMouseDown按下滑鼠鍵
imMouseUp按下滑鼠鍵,放開
imNone不設定滑鼠操作
imRightClickUp單擊滑鼠右鍵,放開
imRightDoubleClick輕按兩下滑鼠右鍵
- RestoreOn設定恢複最小化到正常狀态
-
最小化和隐窗體應該用: TrayIconMe->Minimize()來實作
還原窗體用:TrayIconMe->Restore()。