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 ch­a 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 ch­a 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. Nh­ng 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