Xem mẫu
- CHƢƠNG 4
LẬP TRÌNH VỚI CÁC ĐIỀU KHIỂN MỞ RỘNG
4.1. Điều khiển Common Dialog
Điều khiển hộp thoại thông dụng (Common Dialog) cung cấp một tập các hộp
thoại chuẩn cho các thao tác nhƣ mở và lƣu trữ tệp tin, thiết lập các tuỳ chọn in, lựa
chọn font chữ, màu. Điều khiển hộp thoại thông dụng cho phép ta hiển thị 6 loại hộp
thoại thông dụng đó là: Open, Save As, Color, Font, Print, Help. Điều khiển hộp
thoại thông dụng không phải điều khiển nội tại trong hộp công cụ. Muốn đƣa điều
khiển hộp thoại thông dụng ra hộp công cụ, ta thực hiện các thao tác: Từ thực đơn
Project ta chọn Components, xuất hiện hộp thoại Components, trong tab Control của
hộp thoại ta tích vào mục Microsoft Common Dialog Control, sau đó kích OK.
Muốn hiển thị hộp thoại thông dụng nào, ta đƣa điều khiển hộp thoại thông dụng
lên Form, sau đó thiết lập các thuộc tính và gọi phƣơng thức hiển thị hộp thoại phù
hợp. Các phƣơng thức tƣơng ứng để hiển thị các hộp thoại thông dụng:
Phƣơng thức Hiển thị hộp thoại
ShowOpen Open
ShowSave Save As
ShowColor Color
ShowFont Font
ShowPrinter Print
ShowHelp Help
4.1.1. Open Dialog, Save Dialog
Hộp thoại Open Dialog dùng để hiển thị hộp thoại Open (mở file). Hộp thoại
Save Dialog dùng để hiển thị hộp thoại Save As (lƣu file). Hai hộp thoại này có
một số thuộc tính chung, thông dụng gồm:
Thuộc tính Giải thích
CancelError Dùng để bắt lỗi khi ngƣời sử dụng nhấn nút Cancel nếu đƣợc
gán giá trị True.
DefaultExt Xác định phần mở rộng ngầm định của file
DialogTitle Xác định tiêu đề của hộp thoại
FileName Xác định tên và đƣờng dẫn của tệp tin mà ngƣời sử dụng đã
chọn
FileTitle Xác định tên tệp tin đƣợc chọn, không chứa đƣờng dẫn
Filter Dùng để lọc kiểu tệp tin mà hộp thoại sẽ hiển thị
103
- FilterIndex Chỉ ra bộ lọc đƣợc sử dụng đầu tiên.
InitDir Xác định thƣ mục sẽ hiển thị khi hộp thoại xuất hiện
Ví dụ:
Viết chƣơng trình sử dụng điều khiển hộp thoại Open và hộp thoại Save As để
thực hiện mở, lƣu tập tin văn bản theo thiết kế sau:
Mở tệp văn bản và hiển
thị nội dung tệp trên
textbox
Mở tệp văn bản và lƣu
nội dung trong textbox
vào tệp
Giải:
Bƣớc 1. Thiết kế form theo mẫu bằng cách đƣa vào form 4 commandbutton, 1
textbox, sau đó xác định vị trí, kích thƣớc cho các điều khiển cho phù hợp.
Bƣớc 2. Thiết lập một số thuộc tính cho các điều khiển nhƣ bảng sau:
TT Điều khiển Thuộc tính Giá trị Ghi chú
Name Form1
1 Form
Caption Commondialog
Name cmdopen
2 CommandButton
Caption Open
Name cmdsave
3 CommandButton
Caption Save
Name cmdappend
4 CommandButton
Caption Append
Name cmdexit Kết thúc chƣơng
5 CommandButton
Caption Exit trình
Bƣớc 3. Mở cửa sổ lệnh của Form1 và gõ vào các dòng lệnh sau:
Dim f As Integer 'khai bao bien tep
Private Sub cmdappend_Click()
104
- cdlhopthoai.ShowSave
Open cdlhopthoai.FileName For Append As #f
Print #f, Txtnd.Text
Close f
End Sub
„------------------------------------------------------------------------------
Private Sub cmdexit_Click()
End
End Sub
Private Sub cmdopen_Click()
Dim s As String
cdlhopthoai.ShowOpen
Open cdlhopthoai.FileName For Input As #f 'Mo tep de doc
Do While EOF(f) = False
Line Input #f, s
Txtnd.Text = Txtnd.Text & s & Chr(13) & Chr(10)
Loop
Close f 'dong tep
End Sub
„------------------------------------------------------------------------------
Private Sub cmdsave_Click()
cdlhopthoai.ShowSave
Open cdlhopthoai.FileName For Output As #f
Print #f, Txtnd.Text 'Ghi van ban vao tep
Close f
End Sub
Private Sub Form_Load()
f = FreeFile
End Sub
Bƣớc 4. Chạy chƣơng trình (F5).
4.1.2. Color Dialog
Hộp thoại Color cho phép ngƣời sử dụng chọn và hiển thị một màu từ bảng màu.
Để hiển thị hộp thoại khi thi hành ta thực hiện nhƣ sau:
Thiết lập giá trị cdlCCRGBInit cho thuộc tính Flags.
Sử dụng phƣơng thức ShowColor để hiển thị hộp thoại.
105
- Sử dụng thuộc tính Color để lấy ra giá trị RGB của màu mà ngƣời sử
dụng đã chọn.
4.1.3. Font Dialog
Hộp thoại Font cho phép ngƣời sử dụng thay đổi font chữ, màu chữ, cỡ chữ, kiểu
chữ. Khi ngƣời sử dụng thực hiện lựa chọn trong hộp thoại Font các thuộc tính sau
sẽ lƣu trữ các thông tin về sự lựa chọn của ngƣời sử dụng.
Thuộc tính Giải thích
Color Trả về màu đã đƣợc ngƣời sử dụng chọn.
FontBold Cho biết kiểu chữ đậm có đƣợc chọn hay không
FontItalic Cho biết kiểu chữ nghiêng có đƣợc chọn hay không
FontStrikethru Cho biết kiểu chữ gạch ngang (strikethrough)có đƣợc chọn hay
không
FontUnderline Cho biết kiểu chữ gạch dƣới (underline)có đƣợc chọn hay không
FontName Trả về tên của font đã đƣợc ngƣời sử dụng chọn
FontSize Trả về cỡ chữ đã đƣợc ngƣời sử chọn
Để hiển thị hộp thoại font ta thực hiện nhƣ sau:
Thiết lập một trong các giá trị hằng cho thuộc tính Flags:
o cdlCFScreenFonts (fonts màn hình)
o cdlCFPrinterFonts (fonts máy in)
o cdlCFBoth (fonts màn hình và fonts máy in)
Sử dụng phƣơng thức ShowFont để hiển thị hộp thoại.
4.2. Điều khiển Image List
Điều khiển này chứa các hình ảnh để dùng với các điều khiển khác nhƣ là
ListView, TreeView, TabStrip, ToolBar, PictureBox, Image. ImageList hỗ trợ các
loại file ảnh nhƣ : bitmap (*.bmp), biểu tƣợng (*.ico), GIF (*.gif), JPEG (*.jpg) và
con trỏ (*.cur).
Để có thể dùng các điều khiển ImageList, ToolBar, StatusBar, ListView,
TreeView... trong đề án Visual Basic ta thực hiện nhƣ sau: Từ menu Project ta chọn
Components xuất hiện hộp thoại Components, trong danh sách các thành phần ta
tích mục “Microsoft Windows Common Controls 6.0 (SP6) sau đó nhấn OK. Các
điều khiển trên đƣợc thêm vào hộp công cụ của Visual Basic.
106
- 4.2.1. Thêm phần tử ảnh cho ImageList lúc thiết kế
Sau khi đã tạo một thể hiện của điều khiển ImageList lên form ta thực hiện các
bƣớc sau:
Nhấn nút phải chuột lên điều khiển ImageList và chọn Properties
Chọn Tab Images để xem trang thuộc tính của điều khiển
Nhấn Insert Picture để hiển thị hộp thoại Select picture
Dùng hộp thoại để tìm tệp tin hình ảnh, rồi nhấn Open. Ta có thể chọn nhiều
tệp tin cùng lúc.
Chỉ ra thuộc tính Key bằng cách chọn hộp Key và nhập một chuỗi.
Hình 4.1. Hộp thoại Property Pages
4.2.2. Thêm phần tử ảnh cho ImageList vào lúc thi hành
Để thêm hình ảnh lúc thi hành ta sử dụng phƣơng thức Add của thuộc tính
ListImage của đối tƣợng ImageList với cú pháp nhƣ sau:
ListImage.Add([Index], [Key], [Picture])
Trong đó:
Tham số Index xác định vị trí phần tử ảnh đƣợc bổ sung vào danh sách, nếu bỏ
qua tham số này, phần tử ảnh đƣợc bổ sung vào cuối danh sách ảnh.
Tham số Key dùng để đặt tên cho phần tử ảnh, có thể sử dụng sau này để truy
xuất vào phần tử ảnh đƣợc đặt tên đó.
Tham số Picure xác định phần tử ảnh nào đƣợc bổ sung vào danh sách.
Ví dụ:
ImageList1.ListImages.Add ,"Cut", LoadPicture("d:\bitmaps\cut.bmp")
107
- 4.2.3. Gỡ bỏ phần tử ảnh khỏi ImageList vào lúc thi hành
Để gỡ bở một phần tử ảnh khỏi danh sách, ta sử dụng phƣơng thức Remove của
thuộc tính ListImage của đối tƣợng ImageList và truyền cho nó Index hoặc Key của
phần tử cần loại bỏ.
Ví dụ:
ImageList1.ListImages.Remove “Cut”
4.2.4. Truy xuất phần tử ảnh trong ImageList.
Để truy xuất hình ảnh từ ImageList và gán cho các đối tƣợng khác ta sử dụng
thuộc tính Picture của ListImage.
Ví dụ: Lập chƣơng trình sử dụng các điều khiển: ImageList, Image,
Commandbutton, Timer, Commondialog tạo album ảnh bằng cách bổ sung ảnh vào
ImageList lúc thi hành rồi hiển thị ảnh lần lƣợt 2 giây một ảnh, theo form mẫu:
Giải:
Bƣớc 1. Thiết kế form bằng cách đƣa các điều khiểnImageList, Image,
Commandbutton, Timer, Commondialog lên form sau đó xác định vị trí, kích thƣớc
của các điều khiển cho phù hợp.
Bƣớc 2. Xác định giá trị cho một số thuộc tính của các điều khiển theo bảng sau:
TT Điều khiển Thuộc tính Giá trị Ghi chú
Name Form1
1 Form
Caption Album
2 Image Name Image1
3 ImageList Name ImageList1
4 Timer Name Timer1
108
- Interval 2000
Name cmdadd Bổ sung ảnh vào
5 Commandbutton
Caption Add Imagelist
Name cmddisplay
6 Commandbutton Hiển thị ảnh
Caption Display
7 Commondialog Name Commondialog1
Bƣớc 3. Mở cửa sổ Code của form1 và gõ vào các dòng lệnh sau:
Dim i As Byte
Private Sub cmdAdd_Click()
commondialog1.Filter = "Graphics file|*.jpg"
commondialog1.ShowOpen
imagelist1.ListImages.Add imagelist1.ListImages.Count + 1, ,
LoadPicture(commondialog1.FileName)
End Sub
„----------------------------------------------------------------------------------------
Private Sub cmddisplay_Click()
If i
- 4.3. Điều khiển MicroSoft Masked Edit
Điều khiển MicroSoft Masked Edit cho phép định dạng dữ liệu nhập theo một
định dạng đƣợc ấn định. Nó không những cung cấp một gợi ý trực quan để ngƣời sử
dụng nhập liệu trong một trƣờng cụ thể mà còn cung cấp kiểm tra ở mức giao diện
ngƣời sử dụng, để ngăn cản ngƣời sử dụng nhập các thông tin không hợp lệ vào điều
khiển.
Điều khiển MaskedEdit không có sẵn trong hộp công cụ. Nếu muốn sử dụng nó,
ta thực hiện các thao tác sau để đƣa điều khiển vào hộp công cụ: Trong Visual Basic,
chọn menu Project / Components. Hộp thoại Components xuất hiện. Trong danh
sách các thành phần, tích vào mục “Microsoft MaskedEdit Control 6.0” rồi nhấn
OK.
4.3.1. Dùng thuộc tính Mask để quy định mặt nạ nhập.
Khi dùng điều khiển MaskedEdit, ta có khả năng ép ngƣời sử dụng nhập những
thông tin theo một điều kiện nào đó. Ví dụ, với trƣờng mã khách hàng, ta có thể ép
ngƣời sử dụng nhập tự 6 ký tự. Các quy tắc để quản lý những gì ngƣời sử dụng nhập
vào trong một điều khiển Masked Edit đƣợc gọi là “Mặt nạ nhập- Masked”. Ta dùng
thuộc tính Mask của điều khiển để gán mặt nạ nhập cho một điều khiển Masked
Edit.
Thuộc tính Mask đƣợc cấu tạo gồm một chuỗi ký tự thể hiện một mẫu để nhập dữ
liệu trong hộp Masked Edit. Sau đây là các ký tự có thể đƣợc dùng trong chuỗi ký
tự:
Ký tự Mô tả
# Chữ số
. Số thập phân
, Dấu phân cách hàng nghìn
: Dấu phân cách giờ và phút
/ Dấu phân cách ngày tháng
\ Mã escape để xử lý ký tự kế tiếp trong chuỗi tƣờng minh theo tứ tự
từ trái qua phải
& Dành chỗ cho ký tự
> Chuyển đổi ký tự thành ký tự in hoa
< Chuyển đổi ký tự thành ký tự thƣờng
A Yêu cầu ký tự thuộc bảng chữ cái hay chữ số
a Tuỳ chọn ký tự thuộc bảng chữ cái hay chữ số
9 Tuỳ chọn chữ số
110
- C Tuỳ chọn ký tự hay khoảng trắng
? 1 từ
Các ký tự Hiển thị đúng nhƣ gõ vào
khác
Ví dụ, nếu ta ép ngƣời sử dụng nhập một số điện thoại 7 chữ số, ta quy định thuộc
tính Mask nhƣ sau: # # # # # # #
Lƣu ý: Nếu quy định thuộc tính Mask là một chuỗi rỗng, điều khiển Mask Edit sẽ
hoạt động tƣơng tự điều khiển TextBox thông thƣờng. Nếu ngƣời sử dụng vi phạm
điều kiện mặt nạ đã quy định, ứng dụng sẽ phát một tiếng “beep”, và ký tự bất hợp
lệ sẽ không đƣợc chấp nhận.
4.3.2. Dùng thuộc tính Format để thay đổi hiển thị thông tin.
Ngoài việc sử dụng thuộc tính Mask để yêu cầu ngƣời sử dụng nhập thông tin
theo một điều kiện nào đó, ta còn có thể chỉ ra thông tin trong điều khiển sẽ đƣợc
định dạng nhƣ thế nào trên màn hình. Ta thực hiện điều này bằng cách sử dụng
thuộc tính Format của điều khiển Masked Edit. Ví dụ, nếu một trƣờng chứa 1 số
điện thoại ta định hiển thị với dấu ngoặc và dấu gạch nối, ta dùng chuỗi Format nhƣ
sau: (# # #) # # # - # # # #
Điều này có nghĩa là ngƣời sử dụng chỉ cần nhập số điện thoại 10 chữ số. Các ký
tự định dạng mở rộng, nhƣ là dấu ngoặc, đƣợc hiển thị tự động.
4.4. Điều khiển ToolBar
Điều khiển ToolBar là một thanh công cụ chứa các nút (botton) mà ta có thể điều
khiển đƣợc. Ta có thể chèn hình ảnh lên các nút nhờ đối tƣợng ImageList. Điều
khiển ToolBar nằm trong nhóm các điều khiển thông dụng của Windows, nó cùng
nhóm với điều khiển ImageList.
4.4.1. Thêm một nút lên thanh ToolBar
Kích chuột phải vào điều khiển ToolBar và chọn Properties, hộp thoại Property
Pages sẽ xuất hiện với 3 tab: General, Buttons và Picture. Chọn tab Button sau đó
kích vào nút Insert Button để thêm một nút trên thanh ToolBar. Ta cần đƣa vào
thuộc tính Key để phân biệt giữa các nút.
4.4.2. Chèn hình ảnh từ ImageList lên các nút
Trong tab General của hộp thoại Property Pages chọn thuộc tính Imagelist là tên
đối tƣợng ImageList mà ta đã đặt lên Form.
111
- Trong tab Buttons, thuộc tính Image sẽ lấy chỉ số của hình cần chèn đƣợc đặt
trong ImageList, chỉ số này cho biết hình cần chèn là hình nào.
4.2.3. Các thuộc tính chính của Button trên ToolBar
Trong tab Buttons thể hiện thuộc tính của các nút, Trong đó:
Index: Xác định chỉ số của Button
Caption: Xác định xâu ký tự hiển thị trên Button
Key: Là xâu ký tự có thể dùng để phân biệt các Button
Style: Xác định dạng hiển thị của Button, nó có thể nhận một trong các giá trị
0 – tbrDefault: Dạng mặc định của Button
1 – tbrCheck: Giống nhƣ CheckBox, nó lún xuống khi kích lần thứ nhất và trở về
trạng thài ban đầu khi nhấn lần nữa.
2 – tbrButtonGroup: Khi ta lập 2 nút trở lên thành một nhóm thì khi kích nút nào thì
nút đó sẽ nhấn xuống, khi kích một nút khác trong nhóm thì nút đƣợc kích sẽ lún
xuống và nút đang lún trƣớc đó sẽ nổi lên.
3 - tbrSeparator: Tạo một dấu gạch ngăn cách giữa các nút hay nhóm nút.
4 - tbrPlaceHolder: Cho phép làm vật chứa cho nút điều khiển khác.
5 – tbrDropDown: Nút có thêm một phím mũi tên, cho phép liệt kê một số nút khác
khi kích vào mũi tên này.
Value: Xác định trạng thái của Button khi chƣơng trình thi hành là nhấn hay chƣa
đƣợc nhấn, nó nhận một trong hai giá trị:
0 – tbrUnpressed: Mặc định nút chƣa đƣợc nhấn
1 – tbrPressed: Mặc định nút đƣợc nhấn
4.5. Điều khiển TreeView
Là điều khiển dùng để trình bày cấu trúc tổ chức của một đối tƣợng nhƣ cấu trúc
cây thƣ mục, tổ chức một cơ quan, một đơn vị.
4.5.1. Các thuộc tính
Nodes: Thuộc tính quan trọng nhất của TreeView, là một danh sách các đối tƣợng
Node (nút). Mỗi Node đƣợc xem là một cây con, có các nút con, nút cháu....
ImageList: Tham chiếu đến đối tƣợng ImageList chứa danh sách hình ảnh liên kết
với TreeView. Ta có thể gán giá trị cho thuộc tính này trong hộp thoại Property
Pages hoặc bằng câu lệnh nhƣ sau:
Set TreeView1.ImageList = ImageList1
CheckBoxes (True/False): Làm xuất hiện CheckBox bên trái mỗi nút
LabelEdit: Xác định chế độ sửa giá trị nhãn (0-tvwAutomatic, 1-tvwManual)
112
- LineStyle: Xác định kiểu đƣờng nối giữa nút cha và các nút con (0-tvwTreeLines,
1-tvwRootLines)
SelectedItem: Trả về một Node đƣợc chọn trong TreeView hoặc dùng để chọn một
Node trong TreeView
Chọn nút gốc trong TreeView:
Set TreeView1.SelectedItem = TreeView1.Nodes(“Root”)
In giá trị nút đang đƣợc chọn
Dim nd As Node
Set nd = TreeView1.SelectedItem
Debug.Print nd.Text
Các thuộc tính của đối tƣợng Node
Child: Tham chiếu đến nút con đầu tiên
Children: Trả về số con
Expanded (True/False): Làm xuất hiện/ẩn các nút con của một nút, tƣơng
đƣơng với việc kích chuột vào nút +/- để triển khai/thu gọn một nút.
FirstSubling: Tham chiếu đến nút con đầu tiên ở cùng cấp
LastSubling: Tham chiếu đến nút con cuối cùng ở cùng cấp
Next:Tham chiếu đến nút con tiếp theo ở cùng cấp
Previous:Tham chiếu đến nút con liền trƣớc ở cùng cấp
Parent: Tham chiếu đến nút cha của một nút
Root: Tham chiếu đến nút gốc
Sorted: Sắp xếp các nút cùng cấp theo thứ tự Alphabet
Text: Chuỗi xuất hiện bên trái của nút
Index: Số thứ tự của nút trong mảng chứa các nút cùng cấp
Chƣơng trình con sau in ra nhãn (text) của nút con của một nút
Private Sub List Children(pnod As Node)
Dim pnodeCurrent As Node
Set pnodeCurrent = pnod.Child
For i = 1 to pnod.Children
Debug.Print pnodCurrent.Text
Set pnodeCurrent = pnodeCurrent.Next
Next
End Sub
In các nút con của nút gốc
Private Sub Command1_Click()
Dim nd As Node
Set nd = TreeView1.Nodes(“Root”)
ListChildren nd
End Sub
113
- 4.5.2. Phương thức
Thêm một nút vào danh sách
Add [Relative][,Relationship][,Key][,Text][,Image][,SelImage]
Trong đó:
Relative: Nhận giá trị là Key hoặc Index của nút mà nút mới đƣợc thêm vào. Quan
hệ của nút mới thêm vào và nút đó nhƣ sau:
0-tvwFirst: Nút đƣợc thêm vào là nút đầu tiên so với các nút cùng cấp với nút
đƣợc cho trong tham số Relative
1-tvwLast: Nút đƣợc thêm vào là nút cuối cùng so với các nút cùng cấp với nút
đƣợc cho trong tham số Relative
Relationship
2-tvwNext: Nút đƣợc thêm vào là nút tiếp theo của nút đƣợc cho trong tham số
Relative
3-tvwPrevious: Nút đƣợc thêm vào là nút kế trƣớc của nút đƣợc cho trong
tham số Relative
4-tvwChild: Nút đƣợc thêm vào là nút con của nút đƣợc cho trong tham số
Relative
Key: Chuỗi văn bản duy nhất cho mỗi nút
Text: Chuỗi văn bản xuất hiện bên trái mỗi nút
Image: Hình ảnh của nút ở trạng thái bình thƣờng
SelImage: Hình ảnh của nút ở trạng thái đƣợc chọn
Remove Index/Key: Xoá nút đƣợc xác định bởi Index/Key
Clear: Xoá toàn bộ cây trong TreeView
4.5.3. Sự kiện
NodeClick: Là sự kiện xảy ra khi ngƣời sử dụng kích chuột vào một nút
4.6. Điều khiển MultiMedia
Điều khiển Multimedia MCI quản lí việc ghi và phát các tệp tin đa phƣơng tiện
trên thiết bị giao tiếp điều khiển truyền thông (Media Control Interface - MCI). Điều
khiển này chứa một loạt các nút bấm để phát ra các lệnh tới các thiết bị nhƣ CD-
ROM, audio, video v.v...
Điều khiển Multimedia không có sẵn trong hộp công cụ. Để đƣa điều khiển
Multimedia vào hộp công cụ, ta làm nhƣ sau:
114
- - Trong Visual Basic, chọn menu Project / Components. Hộp thoại Components xuất
hiện.
- Trong danh sách các thành phần, tích chọn “Microsoft Multimedia Control 6.0”.
- Nhấn OK. Điều khiển Multimedia (MMControl) đƣợc thêm vào hộp công cụ của
Visual Basic.
Nháy đúp chuột vào điều khiển MMControl để đƣa điều khiển lên Form. Khi đó
Form có dạng:
Với các nút tƣơng ứng là: Prev, Next, Play, Pause, Back, Step, Stop, Record, và
Eject.
Sau khi nạp điều khiển MCI vào đề án, bạn đặt nó lên biểu mẫu và định cỡ nó
theo nhu cầu. Do điều khiển MCI có thể truy xuất nhiều kiểu phƣơng tiện khác nhau,
chúng ta phải báo cho điều khiển biết sẽ dùng kiểu nào bằng cách thiết lập giá trị
cho thuộc tính DeviceType một trong các giá trị sau:
Giá trị Phƣơng tiện
CDAudio CD audio
DAT Digital Audio Tape
DigitalVideo Digital video
Other Other
Overlay Overlay
Scanner Scanner
Sequencer Sequencer
VCR Vcr
AVIVideo AVI
Videodisc Videodisc
Waveaudio Wave audio
Sau khi xác lập DeviceType, ta phải mở thiết bị sử dụng lệnh Open. Lệnh này có
cú pháp nhƣ sau:
MMControl1.Command = “Open”
Trong đó, MMControl1 là tên của điều khiển của MMControl.
Thông thƣờng trƣớc khi sử dụng lệnh Open ta thiết lập giá trị cho một số thuộc
tính. Ví dụ:
115
- MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.Command = True
MMControl1.DeviceType = "CDAudio"
MMControl1.FileName = Audio_fname „Chỉ ra tên tập tin âm thanh
MMControl1.Command = "Open"
Nếu tính chất Notify đƣợc ấn dịnh theo True, điều khiển sẽ phát sinh sự kiện
Done sau khi một lệnh đƣợc phát ra. Trong hầu hết các ứng dụng, tính chất Notify
thƣờng không đƣợc dùng, do đó ở đây nó đƣợc ấn định theo False. Tính chất Wait
đƣợc dùng để xác định cách thức mà chƣơng trình bắt đầu lại điều khiển sau khi truy
xuất thiết bị Multimedia. Nếu tính chất Wait đƣợc ấn định theo False, điều khiển
MCI sẽ không chờ cho phƣơng tiện đã chỉ định phát xong thì mới trả quyền điều
khiển. Nếu tính chất Wait đƣợc ấn định theo True, quyền điều khiển chƣơng trình sẽ
không trở về chƣơng trình của bạn cho đến khi phƣơng tiện đã chỉ định phát xong.
Tính chất Shareable xác định một chƣơng trình khác sẽ đƣợc phép dùng chung thiết
bị MCI. Tính chất này đƣợc ấn định theo True nếu nó đƣợc phép và False nếu nhƣ
không. Giá trị của các tính chất này có thể thay đổi trong các chƣơng trình, nhƣng
điều quan trọng phải biết đó là nếu dự định xác lập các giá trị này, chúng phải đƣợc
ấn định trƣớc khi phát ra lệnh Open.
Các lệnh tiếp theo có thể dùng với điều khiển MMControl là: Open, Close, Play,
Pause, Stop, Back, Step, Prev, Next, Seek, Record, Eject, Save.
Ví dụ: Ta dùng lệnh Play để mở tập tin âm thanh
MMControl1.Command = “Play”
Ta cũng có thể phát các lệnh khác tuỳ ý, nhƣ Pause và Stop. Để phát các lệnh này,
ta dùng cú pháp giống nhƣ với lệnh Play.
Khi phát xong kiểu phƣơng tiện mong muốn, ta phải đóng thiết bị, cũng nhƣ phải
đóng một tập tin Visual Basic sau khi mở nó để bảo toàn tài nguyên. Để đóng thiết
bị, ta phát lệnh Close, giống cú pháp của lệnh Play ở trên.
4.7. Menu
Có hai loại menu thƣờng gặp là menu thả xuống (drop-down menu) và menu hiện
lên (pop-up menu). Chúng ta thƣờng dùng menu drop-down làm menu chính cho
chƣơng trình, nó thƣờng nằm theo chiều ngang, nếu ta nhấp chuột vào một mục
chọn (menu command) thì chƣơng trình sẽ thả xuống một menu với những mục
chọn con (MenuItems) nằm dọc theo chiều thẳng đứng. Nếu ta nhấp chuột lên mục
chọn con nào đó có dấu hình tam giác nhỏ bên phải thì chƣơng trình sẽ hiện lên một
116
- menu nhƣ trong ví dụ sau đây: Nhấp chuột vào mục chọn đơn “Mầu sắc” chƣơng
trình sẽ thả xuống một menu (drop-down menu); nhấp chuột vào mục chọn con
“Chọn mầu”, chƣơng trình sẽ hiện lên một menu (pop-up menu).
Ví dụ:
Chúng ta quy ƣớc gọi lệnh đơn (mục chọn đơn) là Menu Command, và lệnh con
(mục chọn con) là MenuItems. Thiết kế menu gồm 2 công việc:
- Thiết kế giao diện.
- Viết lệnh cho các thủ tục đáp ứng sự kiện chọn các mục menu.
Chúng ta sẽ trình bày phần này bằng chƣơng trình chọn mầu nền cho Form và
thay đổi kích thƣớc của Form. Chƣơng trình sẽ cung cấp một menu gồm có 2 trình
đơn: “Mầu sắc” và “Kích thƣớc”. Trình đơn “Mầu sắc” cho phép ta thay đổi mầu
nền của Form, trình đơn “Kích thƣớc” cho phép ta thay đổi kích thƣớc Form.
- Trong trình đơn “Mầu sắc” có 2 mục là “Chọn mầu” và “Thoát”. Khi chọn mục
“Chọn mầu” trong trình đơn “Mầu sắc”, một menu xuất hiện với 3 mục là “Xanh”,
“Đỏ” và “Trắng”, đay là các mầu ta có thể chọn làm mầu nền Form. Khi ta chọn
mục “Thoát” trong trình đơn “Mầu sắc”, chƣơng trình kết thúc.
- Trong trình đơn “Kích thƣớc” có 2 mục là “Phóng to” và “Thu nhỏ”. Khi chọn
mục “Phóng to”, kích thƣớc của Form sẽ phóng to chiếm toàn bộ màn hình. Khi
chọn mục “Thu nhỏ”, kích thƣớc của Form sẽ thu nhỏ nhƣ lúc ban đầu.
a) Thiết kế giao diện
Bƣớc 1. Chọn một Form để thiết kế menu. Ví dụ Form có tên là frmMenu, có thuộc
tính Caption là “Chon mau nen va kich thuoc Form”.
Bƣớc 2. Gọi Menu Editor bằng 2 cách:
Cách 1: Trên menu của Visual Basic chọn Tools -> chọn mục Menu Editor.
117
- Hình 4.2. Lệnh đơn Menu Editor
Cách 2: Nhấn nút lệnh Menu Editor ( ) trên thanh công cụ chuẩn.
Menu Editor
Hình 4.3. Công cụ Menu Editor
Bƣớc 3. Tạo các mục chọn trên menu:
Sau khi gọi Menu Editor thì cửa sổ “Menu Editor” sẽ xuất hiện:
Hình 4.4. Hộp thoại Menu Editor
- Gõ tên mục chọn trong hộp gõ văn bản Caption. Ví dụ ta gõ “&Mầu sắc”. Nếu
muốn dùng phím thay thế khi sử dụng menu, ta có thể đặt dấu & ở ngay trƣớc ký tự
mà ta muốn trong phần Caption này, ví dụ nhấn Alt-M sẽ cho chọn mục “Mầu sắc”.
Để tạo gạch ngang phân cách giữa các mục chọn, tại hộp gõ văn bản ta gõ dấu trừ “-
“.
118
- - Gõ tên mục chọn trong hộp văn bản “Name”, quy ƣớc có “mnu” ở tên để phân biệt
với các đối tƣợng khác trong Form. Ví dụ, đặt tên cho mục chọn đơn là
“mnuMausac”.
Nhấp chuột vào nút “Next” để tạo các mục chọn khác menu. Tƣơng tự nhƣ đã tạo
Menu Command “Mầu sắc” ở trên, ta tạo Menu Command “Kích thƣớc”.
Trong các Menu Command thƣờng có các MenuItems. Tất cả các MenuItems của
Menu Command đều nằm thụt vào bên phải với 4 dấu chấm “….” ở phía trƣớc. Khi
ta nhấp chuột vào dấu mũi tên chỉ sang bên phải trong cửa sổ Menu Editor thì
MenuItems ta đang chỉnh sửa sẽ có thêm 4 dấu chấm “….”, tức là thụt vào một bậc
trong Menu.
Nếu muốn tạo MenuItems có cấp thấp hơn nữa thì ta lại tiếp tục nhấp mũi tên
sang phải , MenuItems lại thụt tiếp một bậc nữa.
119
- Tƣơng tự, nếu ta nhấp mũi tên sang trái thì MenuItems đang chỉnh sửa sẽ mất
4 dấu chấm “….” phía trƣớc, tức là nó đã đƣợc trồi ra một bậc.
Ta tạo các MenuItems cho Menu Command “Mầu sắc” gồm: “Chọn mầu”, dấu
gạch ngang và “Thoát”. Menu Command “Kích thƣớc” có các MenuItems là “Phóng
to” và “Thu nhỏ” bằng cách tạo nhƣ các Menu Command rồi nhấp vào mũi tên sang
phải để nó trở thành các MenuItems, ta cũng có thể thay đổi thứ tự các mục
chọn trong menu sử dụng các phím mũi tên lê, mũi tên xuống. Để chèn một dòng
mới vào menu đã có sẵn, ta đặt thanh sáng ở dòng muốn chèn vào trƣớc nó rồi nhấn
vào nút “Insert”. Để xoá một dòng trong menu, ta chọn dòng muốn xoá rồi nhấn nút
“Delete”.
Mỗi MenuItems có thêm một tính năng nữa, đó là ta có thể tạo phím tắt cho nó
trong mục “Shortcut”. Ví dụ, ta có thể dùng phím tắt Ctrl-E để thay cho việc chọn
lệnh đơn “Thoát”.
Có một số tuỳ chọn trong Menu Editor chúng ta có thể chọn nhƣ
Mục “Visible” dùng để hiện/ẩn một mục chọn trong menu.
Mục “Enable” dùng để cho phép/vô hiệu hoá một mục chọn trong menu
Mục “Check” dùng để thêm/không thêm dấu kiểm bên trái một mục chọn trong
menu khi nó đƣợc chọn.
Sau đây là bảng danh mục các mục chọn trên menu của Form “frmMenu”:
Mục chọn Caption Name Checked
Mầu sắc &Mầu sắc mnumausac
Chọn mầu ….&Chọn mầu mnuchonmau
Xanh ……..&Xanh mnuXanh x
Đỏ ……..&Đỏ mnuDo x
Trắng ……..&Trắng mnuTrang x
120
- Dấu gạch ngang ….- mnugach
Thoát ….&Thoát mnuThoat
Kích thƣớc &Kích thƣớc mnukichthuoc
Phóng to ….&Phóng to mnuTo x
Thu nhỏ ….&Thu nhỏ mnuNho x
Ghi chú: Muốn hiển thị đƣợc menu tiếng Việt, ta chọn bộ mã TCVN3 để gõ tên
mục chọn trong Menu Editor. Trƣớc khi chạy chƣơng trình ta thiết lập thuộc tính
font cho menu của hệ thống nhƣ sau: Kích phải chuột vào màn hình nền, chọn
Properties để hiển thị hộp thoại Display Properties, chọn Tab Appearance, rồi nhấn
nút Advanced, trong mục Item chọn Menu, sau đó chọn font .vntime, cỡ 12 rồi nhấn
nút OK, tiếp đó nhấn nút Apply và cuối cùng là nhấn nút OK. Đừng bận tâm nếu
trong hộp thoại Menu Editor không hiển thị đúng tiếng Việt.
b) Viết lệnh cho các thủ tục đáp ứng sự kiện chọn (Click) mục chọn
Mỗi mục chọn trên menu có một thủ tục đáp ứng sự kiện Click của ngƣời sử dụng
chƣơng trình. Ví dụ, khi ngƣời sử dụng chọn mục “Thoát” trong trình đơn “Mầu
sắc” thì thủ tục mnuthoat_Click( ) đƣợc thực hiện.
Thủ tục Form_Load ( )
Thủ tục này thực hiện ngay khi ta khởi động chƣơng trình. Thủ tục làm nhiệm vụ
ẩn đi 2 mục “Trắng” và “Thu nhỏ” bằng cách đặt thuộc tính “Enable” có giá trị là
False.
Private Sub Form_Load()
mnutrang.Enabled = False
mnunho.Enabled = False
End Sub
Thủ tục mnudo_Click ( )
Thủ tục đƣợc thực hiện khi ta chọn mục “Đỏ”. Thủ tục có nhiệm vụ đổi mầu nền
của Form thành mầu đỏ và cho ẩn đi mục “Đỏ”, đồng thời bật các mục “Xanh” và
“Trắng” lên.
Private Sub mnuDo_Click()
frmMenu.BackColor = vbRed ' Đặt mầu nền là đỏ
mnudo.Enabled = False ' Vô hiệu hoá mục chọn “Đỏ”
mnuxanh.Enabled = True ' Cho phép sử dụng mục chọn “Xanh”
mnutrang.Enabled = True ' Cho phép sử dụng mục chọn “Trắng”
End Sub
Thủ tục mnuTrang_Click ( )
121
- Tƣơng tự thủ tục mnuDo_Click(), nhƣng đổi mầu nền của Form thành mầu trắng
và cho vô hiệu hoá mục chọn “Trắng”.
Thủ tục mnuXanh_Click ( )
Tƣơng tự thủ tục mnuDo_Click(), nhƣng đổi mầu nền của Form thành màu xanh
và cho vô hiệu hoá mục chọn “Xanh”.
Thủ tục mnuTo_Click ( )
Thủ tục thực hiện khi ta chọn mục “Phóng to”. Thủ tục làm nhiệm vụ đƣa cửa sổ
Form về dạng lớn và vô hiệu hoá mục chọn “Phóng to” đi, đồng thời bật mục “Thu
nhỏ”.
Private Sub mnuTo_Click()
frmMenu.WindowState = 2 'Đặt thủ tục Form ở dạng lớn
mnuTo.Enabled = False 'Vo hiệu hoá mục chọn “Phóng to”
mnunho.Enabled = True 'Cho phép đổi cửa sổ Form sang dạng nhỏ
End Sub
Thủ tục mnuNho_Click ( )
Thủ tục thực hiện tƣơng tự thủ tục mnuTo_Click() thực hiện thu nhỏ cửa sổ.
Thủ tục mnuThoat_Click ( )
Thủ tục thực hiện khi ta chọn mục “Thoát”. Thủ tục làm nhiệm vụ kết thúc
chƣơng trình.
Private Sub mnuthoat_Click()
End
End Sub
4.8. Điều khiển RichTextBox
Điều khiển RichTextBox cho phép ngƣời sử dụng nhập và sửa văn bản đồng thời
cũng tạo ra nhiều đặc tính định dạng hơn điều khiển TextBox thông thƣờng
Điều khiển RichTextBox tạo ra một số các thuộc tính mà ta có thể sử dụng để
thay đổi định dạng của bất cứ phần nào thuộc văn bản trong điều khiển. Sử dụng các
thuộc tính này ta có thể thay đổi màu chữ, chữ đậm hoặc nghiêng, tạo chỉ số trên, chỉ
122
nguon tai.lieu . vn