Dùng ActiveX (.OCX) để đưa chương trình vào System Tray
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 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.
0 nhận xét:
Đăng nhận xét