Cïng häc lËp tr×nh Visual Basic
Dïng ActiveX
(.OCX)
®Ó ®a ch¬ng tr×nh vµo System Tray
Xem bai viet bang font Unicode
§Ó ®a ®îc ch¬ng tr×nh cña m×nh vµo System Tray chóng ta cÇn ph¶i lËp tr×nh, còng kh«ng cã g× phøc t¹p l¾m. Tuy nhiªn c¸ch nhanh nhÊt lµ dïng mét ActiveX (tËp tin .OCX) ®Ó gióp chóng ta dÔ dµng ®a ch¬ng tr×nh cña m×nh vµo System tray mµ kh«ng hÒ tèn mét giät må h«i. T«i xin giíi thiÖu víi c¸c b¹n mét ActiveX tªn lµ ZTray dïng trong c¸c phiªn b¶n Visual Basic 32 bit (hoµn toµn free). B¹n chØ cÇn t¹o ®èi tîng nµy vµo ch¬ng tr×nh & ®Æt c¸c thuéc tÝnh thÝch hîp cho nã tøc th× ch¬ng tr×nh cña b¹n bay c¸i vÌo vµo System Tray, thiÖt hÕt ý.

B¾t ®Çu víi ZTray control
()) §Æc ®iÓm
- ChØ cÇn t¹o mét ®èi tîng duy nhÊt , nã sÏ ho¸ phÐp cho ch¬ng tr×nh cña b¹n bay vµo System Tray.
- BiÓu tîng (Icon) cña ch¬ng tr×nh
trong System Tray ph¶i lµ file biÓu tîng (*.ico).
- Icon nµy ph¶i ®îc ®Æt trong mét ImageList, kÝch thíc kh«ng
thµnh vÊn ®Ò.
- NÕu b¹n kh«ng chØ ®Þnh Icon, nã sÏ tù ®éng lÊy Icon mÆc ®Þnh
cña nã (lµ qu¶ ®Þa cÇu, tr«ng xÊu tÖ).
- & cßn nhiÒu thø n÷a ....
()) Mét sè thuéc tÝnh & sù kiÖn
Ngoµi nh÷ng thuéc tÝnh, sù kiÖn b×nh thêng cña mét ®èi tîng trong m«i trêng VB. ZTray cßn cã c¸c thuéc tÝnh ®Æc sau.
* ImageList Property
Thuéc tÝnh nµy ®Ó b¹n cã thÓ g¸n cho nã mét ImageList. Trong ImageList nµy chøa (c¸c) Icon mµ nã dïng lµm biÓu tîng ch¬ng tr×nh trong System Tray. ChØ cã thÓ thay ®æi lóc Design, lóc ch¬ng tr×nh ®ang ch¹y b¹n kh«ng thay ®æi ®îc thuéc tÝnh nµy ®©u.
Có ph¸p: ZTray.ImageList [=value]
[value] ChÝnh lµ tªn cña ImageList (kiÓu String)
- NÕu
kh«ng cã ImageList nã sÏ tù ®éng xµi c¸i Icon mÆc ®Þnh cña m×nh.
- NÕu
b¹n cã thay ®æi biÓu tîng lóc ch¬ng tr×nh thùc thi b¹n ph¶i chñ
®éng ®Ó nã biÕt b»ng c¸ch thay ®æi chuéc tÝnh ImageNumber hoÆc g¸n
ShowInTray = True (ngay c¶ khi nã ®ang lµ True).
- Nh¾c l¹i n÷a: BiÓu tîng ph¶i lµ icon file.
* ShowInTray Property
NhËn gi¸ trÞ Boolean (TRUE/FALSE). True nghÜa lµ cho hiÖn Icon trong System Tray. Lµ False th× ngîc l¹i.
Có ph¸p: ZTray.ShowInTray [=value]
[value] lµ True hay False
- ShowInTray
sÏ cã hiÖu lùc ngay khi ch¬ng tr×nh b¾t ®Çu Run.
- Cã thÓ g¸n b¹n True ®Ó Update cho Icon trong System Tray nÕu cã thay ®æi.
* ImageNumber Property
Thuéc tÝnh nµy dïng ®Ó g¸n hoÆc truy xuÊt thø tù cña Image mµ ZTray dïng lµm Icon cho ch¬ng tr×nh. Gi¸ trÞ nµy lµ chØ sè cña Image trong mét ImageList.
Có ph¸p: ZTray.ImageNumber [=value]
[value] ChØ sè cña image trong ImageList mµ ZTray dïng lµm biÓu tîng (lµm mét Integer).
BiÓu tîng tù ®éng cËp nhËt khi thuéc tÝnh nµy cã sù thay ®æi.
* TipText Property
Dïng ®Ó g¸n hoÆc truy xuÊt ®Õn ToolTip cña ®èi tîng, ToolTip nµy
sÏ tù ®éng xuÊt hiÖn khi b¹n rª mouse ®Õn trªn biÓu tîng trong System
Tray.
Có ph¸p: ZTray.TipText [=value]
[value] Lµ mét String. §é dµi tèi ®a lµ 64 ký tù, nÕu b¹n cè t×nh cho mét string qu¸ dµi, nã tù ®éng c¾t bít.
- SÏ cã t¸c dông ngay lËp tøc nÕu thay ®æi.
* Click Event
XÈy ra khi ngêi dïng click nót (tr¸i hay ph¶i) chuét vµo Icon trong System Tray.
Có ph¸p: Private Sub ZTray_Click (Button as integer)
[Button] cho biÕt nót nµo ®îc nhÊn.
1 lµ Left Mouse Button
2 lµ Right Mouse Button
* DblClick Property
XÈy ra khi ngêi dïng Double click vµo Icon trong System Tray (c¶ tr¸i
lÉn ph¶i ®Òu ®îc c«ng nhËn mét c¸ch râ rµng).
Có ph¸p:
Private Sub ZTray_DblClick (Button as integer)
[Button] cho biÕt nót nµo ®îc nhÊn.
1 lµ Left Mouse Button
2 lµ Right Mouse Button
()) Minh häa c¸ch sö dông
1. ChuÈn bÞ:
Sau ®©y lµ mét ch¬ng tr×nh thÝ dô minh häa c¸ch sö dông ®èi tîng ZTray.
§Çu tiªn b¹n h·y chuÈn bÞ tËp tin ZTray.ocx, nÕu cha cã h·y vµo WebLH t¶i vÒ, më nÐn vµo th môc System cña Windows.
B¹n h·y khëi ®éng VB, t¹o mét Project míi ®Ó b¾t ®Çu cuéc thö nghiÖm.
2. §a ZTray vµo ®Ò ¸n:
Project / Components hoÆc dïng tæ hîp phÝm Ctrl - T ®Ó më cöa sæ Components. Cick chän ActiveX tªn ZTray System Tray Control.

NÕu cha cã trong Danh s¸ch b¹n cã thÓ Click nót Browse ®Ó chän tËp tin ZTray.ocx tõ mét th môc nµo ®ã
V× ZTray ®ßi hái cã mét ImageList nªn b¹n ph¶i click chän thªm "Microsoft Windows Common Controls 6.0".
Click OK b¹n sÏ thÊy ZTray Control xuÊt hiÖn trªn hép ToolBox cña VB.

3. ThiÕt kÕ:
Trªn Form1, b¹n t¹o mét ImageList tªn lµ ImageList1 & mét ZTray tªn lµ ZTray1. Vµ t¹o c¸c menu cã tªn t¬ng øng nh sau:
| Caption | Name | Checked |
| PopUp | mnuPopUp | |
| Set ToolTips | mnuTips | |
| Show In Tray | mnuShow | True |
| About | mnuAbout | |
| Exit | mnuExit |

Click ph¶i chuét lªn ImageList1 võa t¹o khi n·y, chän Properties, chän tiÕp thÎ Images, dïng nót Insert Picture ®Ó thªm vµo mét sè Image (nhí lµ ph¶i dïng Icon file). §¹i lo¹i nh sau, vËy lµ ta cã 7 h×nh (tø 1 ®Õn 7). Click OK ®Ó ®ãng hép tho¹i nµy l¹i.

L¹i click ph¶i lªn ZTray1 võa t¹o. NhËp vµo khung ImageList lµ ImageList1, ImageNumber lµ 1 (¶nh ®Çu tiªn trong ImageList1), TipText: nhËp ®¹i mét vµi ch÷, xong click OK.

Sau ®ã tiÕn hµnh viÕt code cho ch¬ng tr×nh nh sau
Option Explicit
Private Sub Form_Load()
ZTray1.ImageNumber = 1
ZTray1.ShowInTray = True
End Sub
Ngay lóc form ®îc n¹p, ®Æt chØ sè cho ImageNumber & cho hiÖn biÓu tîng trong System Tray.
Private Sub Form_Unload(Cancel As Integer)
ZTray1.ShowTray = True
Visible = False
Cancel = 1
End Sub
Khi ngêi dïng click nót close trªn thanh Title bar, ch¬ng tr×nh sÏ kh«ng tho¸t mµ chØ Èn form ®i th«i. Nhng tríc khi giÊu Form nã l¹i cho hiÖn Icon nÕu lóc ®ã Èn ®Ó tr¸nh trêng hîp c¶ Form lÉn Icon ®Òu biÕn mÊt.
Private Sub mnuAbout_Click()
'About
MsgBox "ZTray Demo by Thien Dang 30/07/2000"
End Sub
Private Sub mnuExit_Click()
'Exit
End
End Sub
Tho¸t khi ch¬ng tr×nh b»ng lÞnh Exit trong menu.
Private Sub mnuIcon_Click()
' Set Icon
ZTray1.ImageNumber = InputBox("Image (1 - 7) ?", "Icon", 1)
End Sub
Thay ®æi Icon cho ZTray. Ta cã thÓ nhËp vµo sè tõ 1 ®Õn 7 do cã 7 Image nh ®· nãi ë trªn.
Private Sub mnuShow_Click()
'Show In Tray
mnuShow.Checked = Not (mnuShow.Checked)
ZTray1.ShowInTray = mnuShow.Checked
If mnuShow.Checked = False Then Visible = True
End Sub
Chøc n¨ng nµy cã nhiÖm vô bËt t¾t c¸i Icon cña ch¬ng tr×nh. Khi b¹n t¾t nã sÏ tù hiÓn thÞ form lªn ®Ó tr¸nh trêng hîp c¶ Icon lÉn form ®Òu mÊt tÝch.
Private Sub mnuTips_Click()
' Set Tooltips
ZTray1.TipText = InputBox("Your text here", "Enter TipText", "Text")
End Sub
Thay ®æi ToolTip. §é dµi tèi ®a 64 ký tù.
Private Sub ZTray1_Click(button As Integer)
If button = 1 Then
Me.Visible = True
SetFocus
Else
PopupMenu mnuPopUp
End If
End Sub
NÕu click nót tr¸i th× hiÖn Form, nót ph¶i th× hiÖn menu.
B©y giê b¹n cã thÓ ch¹y thö ch¬ng tr×nh cña m×nh råi ®Êy. B¹n cã thÓ click ph¶i chuét trªn Icon trong System Tray ®Ó truy xuÊt menu.

Víi ActiveX nµy t«i hy väng b¹n ®ì ph¶i nhäc c«ng khi cÇn ®a ch¬ng tr×nh cña m×nh vµo System Tray. Mäi ý kiÕn ®ãng gãp xin b¹n vui lßng liªn hÖ víi Thiªn §¨ng, thiendang@tlnet.com.vn
Chóc b¹n thµnh c«ng.
chuÒ nhâòt, thaìng hai 03, 2002
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com