Tải bản đầy đủ (.pdf) (21 trang)

Bài giảng visual basic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (689.15 KB, 21 trang )

L.T.Vinh
1
Visual Basic
1. Mở đầu
Visual Basic (VB) là một công cụ lập trình hướng đối tượng sử dụng rộng
rãi để xây dựng các ứng dụng trong nhiều lĩnh vực khác nhau. Đối với các ứng
dụng phục vụ đào tạo VB đặc biệt quan trọng vì khả năng thiết kế nhanh chóng
các giao diện đẹp và thân thiện giữa người và máy tính. khác với một số ngôn
ngữ lập trình khác bên cạnh các tập lệnh, cú pháp lập trình VB thường xuyên
phải xử dụng các khái niệm như đối tượng, thuộc tính, phương thức, lớp…
1.1 Đối tượng:
Một tập hợp các dữ liệu, các lệnh được thiết kế để thực hiện một mục đích
nào đó được VB xây dựng thành các đối tượng. Ví dụ như đối tượng nút lệnh
dùng để thực hiện một tập lệnh do người lập trình đưa vào khi có sự kiện nhấp
chuột. Trong VB có sẵn một tập hợp các đối tượng. Các đối tượng này được lưu
trữ trong các file.OCX và có thể lấy ra từ hộp công cụ trong môi trường soạn
thảo. Ngoài ra lập trình viên VB có thể lập trình riêng cho mình các đối tượng
cuối khi có nhu cầu đặt ra.
1.2 Thuộc tính
Đối tượng của VB có thể được hiểu như những linh kiện hay những viên
gạch dùng để xây dựng nên một ứng dụng. Do đó để có thể dùng các viên gạch
này phải hiểu rõ các tính chất (thuộc tính) và các thao tác trên nó (tác vụ). Các
thuộc tính thường gặp của các đối tượng trong VB là chiều rộng, chiều cao, toạ
độ, màu…
Ví dụ: câu lệnh sau:
Ten = command1.Caption
gán nhãn của nút lệnh cho biến Ten.
1.3 Phương thức:
Các tác vụ trên đối như dịch chuyển (Move), hiển thị (Visible), trạng thái
hoạt động (Enable) được gọi là phương thức.
Ví dụ: câu lệnh sau:


Label1.Move 0, 0
chuyển đối tượng Lablel1 đến góc trái trên của màn hình.
1.4 Sự kiện:
Là kết quả của tác vụ trên đối tượng như kích chuột (Click), ấn phím, nháy
đúp chuột (DbClick) trong VB các sự kiện được thực hiện thông qua các thủ
tục. Ví dụ: thủ tục.
Private Sub Command1_Click()
……
End Sub
Thực hiện sự kiện nhấp chuột lên đối tượng nút lệnh có tên là Command1.
L.T.Vinh
2
Khi xây dựng các ứng dụng trong VB chúng ta phải thông qua hai bước:
- Thiết kế giao diện (Visual programming)
- Viết code (Code programming)
Khi thiết kế giao diện chúng ta sử dụng các công cụ do VB cung cấp. Chúng
ta có thể lôi, kéo, thả các đối tượng trong quá trình thiết kế. hay nói cách khác
quá trình thiết kế được thực hiện dưới sự trợ giúp của mose và bàn phím.
Khi viết code chúng ta sử dụng chương trình soạn thảo của VB. Bước này
tương tự như tất cả các ngôn ngữ lập trình khác.
2. Môi trường Visual Basic
2.1 Vào ra môi trường VB
Cách khởi động VB đơn giản nhất là thực hiện các tác vụ sau:
1) kích nút Start
2) Nhấp thanh Programs
3) Nhấp Microsoft Visual Studio 6.0
4) Nháy kép mục Visual Basic 6.0
Sau khi thực hiện các tác vụ nói trên màn hình sẽ xuất hiện giao diện môi trường
VB (hình 2.1).
Để thoát khỏi môi trường VB trở về Windows có thể thực hiện hai cách:

- (1) Vào menu File, (2) chọn Exit
- Nhấp chuột vào biểu tượng
Thanh công cụ (Tool bar)
Thanh thực đơn (Menu bar)
Cửa sổ Project windows
Cửa sổ Form
Cửa sổ Project Container
Cửa sổ
thu
ộc tính
Cửa sổ
Form
layout
Hình 3. Môi trường Visual Basic
Hộp công cụ (Tool box)
Cửa sổ Code
L.T.Vinh
3
2.2 Xây dựng ứng dụng trong môi trường VB
Trên hình 2.1 là cửa sổ môi trường VB. Trong môi trường VB chúng ta có
thể thực hiện các tác vụ thông qua hệ thống các phím nóng hoặc các chức năng
trong thực đơn. Sau đây là một số chức năng cơ bản của môi trường VB
- Thanh Menu : chứa các menu lệnh phục vụ soạn thảo.
- Thanh công cụ : chứa các nút lệnh thông dụng dùng để điều khiển môi
trường lập trình Visual Basic.
- Hộp công cụ : chứa các đối tượng.
- Cửa sổ Project Container : chứa 2 cửa sổ:
+ Cửa sổ Code : là nơi soạn thảo lệnh của chương trình.
+ Cửa sổ biểu mẫu : là nơi soạn thảo giao diện của chương trình .
- Cửa sổ Project : liệt kê tất cả các tệp tin đã xử dụng trong quá trình lập

trình.
- Cửa sổ đặc tính : chứa các thuộc tính của các đối tượng có trong chương
trình vào thời gian thiết kế.
- Cửa sổ Form layout : xác định vị trí hiển thị, kích thước của form vào lúc
thực hiện chương trình. Cho phép người lập trình thay đổi vị trí hiển thị của
form bằng chuột.
2.3 Lập trình đơn thể
Cũng giống như các ngôn ngữ lập trình khác, lập trình đơn thể trong VB
thông qua các biến, hằng và các cấu trúc lệnh…các lệnh và biến được đặt trong
các hàm, thủ tục.
a) Biến.
Trong VB biến được khai báo bằng phát biểu Dim với cú pháp như sau:
Dim VariableName [As Type]
Trong đó Dim, As là từ khoá. VariableName là tên do bạn đặt. Type là
kiểu dữ liệu áp dụng cho biến.
Ví dụ:
Dim Số As Integer ; khai báo biến Số có kiểu số nguyên
Dim Số_thực As Single ; khai báo biến Số_thực có kiểu số thực
Dim OBJ As Object ; khai báo biến OBJ có kiểu đối tượng
Dim Chuỗi As String *10 ; khai báo biến Chuỗi có kiểu chuỗi 10 ký tự
Dim Mảng (1 To 100) As Integer ; khai báo mảng số nguyên
VB có một kiểu dữ liệu đặc biệt (Variant) có thể chứa bất kỳ một kiểu dữ
liệu nào có trong VB. Ví dụ: bạn khai báo biến AnyData như sau:
Dim AnyData As Variant
Thì trong chương trình bạn có thể gán:
AnyData = 10
Và cũng có thể gán:
AnyData = “My data”
L.T.Vinh
4

b) Cấu trúc lệnh
 Lệnh gán
- Cú pháp: TênBiến = Giá trị
- Ví dụ:
Số = 100
Số_thực = 1.5
Chuỗi = ”Hello”
 Lệnh If Then
- Cú pháp:
If <Condition> Then
<Statements>
End If
Condition là điều kiện, nếu Condition có giá trị True thì các lệnh trong
Statements sẽ được thực hiện.
- Ví dụ:
Số = 100
If số=100 then
Msgbox (‘Số là một trăm’)
End If
ví dụ trên sẽ cho hiển thị hộp thoại ghi “Số là một trăm” vì điều kiện trong
Condition là True.
 Lệnh If Then Else
- Cú pháp:
If <Condition> Then
<Statements 1>
Else
<Statements 2>
End If
Condition là điều kiện, nếu Condition có giá trị True thì các lệnh trong
Statements1 sẽ được thực hiện ngược lại Condition có giá trị False thì các lệnh

trong Statements2 sẽ được thực hiện.
- Ví dụ:
Số = 1000
If số=100 Then
Msgbox (‘Số là một trăm’)
Else
Msgbox (‘Số là một nghìn’)
End If
ví dụ trên sẽ cho hiển thị hộp thoại ghi “Số là một nghìn” vì điều kiện
trong Condition là True.
 Lệnh Select Case
- Cú pháp:
Select Case TestTextpression
[Case expressionlist-1
[<Statements 1> ] ]

L.T.Vinh
5
[Case expressionlist-n
[<Statements n> ] ]
End Select
TestTextpression là một chuỗi hoặc số dùng để so sánh với các chuỗi
hoặc số chứa trong Testextpression_n. Nếu TestTextpression có giá trị bằng
Testextpression_i thì Statements_i sẽ được thực hiện.
- Ví dụ:
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 1 : Msgbox(‘Số bạn ấn là 1’)
Case 2 : Msgbox(‘Số bạn ấn là 2’)
Case 3 : Msgbox(‘Số bạn ấn là 3’)

Case 4 : Msgbox(‘Số bạn ấn là 4’)
Case 5 : Msgbox(‘Số bạn ấn là 5’)
Case 6 : Msgbox(‘Số bạn ấn là 6’)
Case 7 : Msgbox(‘Số bạn ấn là 7’)
Case 8 : Msgbox(‘Số bạn ấn là 8’)
Case 9 : Msgbox(‘Số bạn ấn là 9’)
Case 0 : Msgbox(‘Số bạn ấn là 0’)
End Select
End Sub
ví dụ trên sẽ đưa ra màn hình hộp thông báo chữ số tương ứng mỗi khi khi
bạn ấn phím số.
 Lệnh For …To…Next
- Cú pháp:
For counter = a To b
<Statements >
Next
Couter là biến đếm, được khởi gán giá trị = a. Các lệnh trong Statements
sẽ được thực hiện b-a lần.
- Ví dụ:
For i = 1 To 10
Form1.PrintForm = i
Next
ví dụ trên sẽ cho hiển thị lần lượt các số từ 1 đến 10 trên Form1.
 Lệnh Do While Loop
- Cú pháp:
Do While <Condition>
<Statements >
Loop
Condition là điều kiện, nếu Condition có giá trị True thì các lệnh trong
Statements sẽ được thực hiện.

- Ví dụ:
i = 0
Do While i < 10
Form1.PrintForm = i
i = i + 1
Loop
L.T.Vinh
6
ví dụ trên sẽ lần lượt đưa ra Form1 các số từ 0 đến 9.
 Lệnh Do Loop While
- Cú pháp:
Do
<Statements >
Loop While <Condition>
Condition là điều kiện, nếu Condition có giá trị True thì các lệnh trong
Statements sẽ được thực hiện. Chú ý khác với lệnh Do While Loop lệnh
Do Loop While được thực hiện ít nhất một lần trong khi lệnh Do While Loop có
thể không được thực hiện lần nào.
- Ví dụ:
i = 1
Do
Form1.PrintForm = i
i = i + 1
Loop While i < 1
ví dụ trên sẽ lần lượt đưa ra Form1 số 1.
2.4 Các đối tượng cơ bản trong VB
 Form
Form là một đối tượng cơ bản được sử dụng làm nền cho thiết kế giao diện.
Một Form mặc định của VB có dạng như hình 2.2.
Là một đối tượng cơ bản của VB nên Form có các thuộc tính cơ bản sau:

- Name : tên Form.
- Caption : chuỗi ký tự hiển thị trên thanh tiêu đề.
- Top : toạ độ Y Form.
- Left : toạ độ X của Form.
Hình 2.2 Form
Bi

u t
ư

ng
Thanh tiêu đ

Nút đi
ều khiển cửa sổ
Cửa sổ
chương
trình
L.T.Vinh
7
- Width : cho giá trị chiều rộng của Form.
- Height : cho giá trị chiều cao của Form.
- WindowsState: cho trạng thái cửa sổ Form lúc chạy chương trình. Có 3
giá trị cho WindowsState. 0 – bình thường, ở chế độ này kích thước cửa
sổ là các giá trị Width, Height. 1- Minimized, cửa sổ ở dạng thu nhỏ nằm
trên thanh trạng thái của Windowd. 2-Maximized, cửa sổ chiếm toàn màn
hình.
Các giá trị thuộc tính của From cũng như của các đối tượng khác có thể cập
nhật trong quá trình thiết kế giao diện hoặc viết Code. Ví dụ ta đặt thuộc tính
Top của Form trong cửa sổ thuộc tính là 100 hoặc viết

Form1.Top = 100
trong cửa sổ code đều cho kết quả tương tự.
Khác với các thuộc tính, phương thức chỉ hoạt động vào thời gian thực hiện
chương trình. Sau đây là một số phương thức cơ bản của Form:
- Load / Unload : cho phép nạp và giải phóng một Form khỏi bộ nhớ.
- Cls : xoá form.
- Move : dịch chuyển tới vị trí định trước.
Các sự kiện xảy ra vào lúc chương trình thực hiện
- Resize : sự kiện này xảy ra khi người sử dụng thay đổi kích thước Form
vào lúc chương trình đang chạy. Người sử dụng có thể tự viết lệnh xử lý
sự kiện này trong thủ tục Form_Resize().
Chú ý : Ngoài các thuộc tính, phương thức, sự kiện của đối tượng Form cũng như các đối
tượng chúng tôi sẽ giới thiệu sau đây còn nhiều thuộc tính, phương thức, sự kiện khác rất hữu
ích trong lập trình ứng dụng. Bạn cần phải cập nhật trong quá trình làm bài thực hành.
 Một số đối tượng cơ bản của VB.
Các đối tượng cơ bản được Visual Basic cho hiển
thị ngay trên hộp công cụ (hình 2.3), bao gồm:
(1) PictureBox: cho phép hiển thị hình ảnh.
(2) Label: hiển thị nhãn.
(3) TextBox: hiển thị văn bản.
(4) Frame: tạo khung Frame.
(5) CommandButton: nút lệnh.
(6) CheckBox. hộp kiểm tra.
(7) OptionButton: hộp chọn lựa.
(8) ComboBox: hộp danh sách Combo.
(9) ListBox: hộp danh sách.
(10) HSCrollBar. thanh cuộn ngang.
(11) VSCrollBar: thanh cuộn dọc.
(12) Timer: điều khiển thời gian.
(13) DriverBox: hộp danh sách ổ đĩa.

(14) DirListBox: hộp danh sách thư mục.
(15) FileListBox: hộp danh sách file.
(16) Shape: đối tượng hình học cơ bản.
Hình 2.3 Tool Box
(1)
(3)
(5)
(7)
(9)
(11)
(13)
(15)
(17)
(19)
(2)
(4)
(6)
(8)
(10)
(12)
(14)
(16)
(18)
(20)
L.T.Vinh
8
(17) Line: đoạn thẳng.
(18) Image: hộp ảnh.
(19) Data: hộp điều khiển dữ liệu.
(20) OLE: hộp điều khiển OLE.

Sau đây là một số thuộc tính, phương thức, sự kiện chung của các đối tượng
- Thuộc tính:
 Name: tên của đối tượng
 Caption: chuỗi hiển thị trên đối tượng
 Top: toạ độ X của đối tượng
 Left: toạ độ Y của đối tượng
 Width: độ rộng của đối tượng
 Height: chiều cao của đối tượng
 Enable: cho phép đối tượng hoạt động
 Visible: cho hiển thị đối tượng
 TabIndex: chỉ số thứ tự dùng cho việc ấn định thứ tự đối tượng khi sử
dụng phím Tab
 ToolTipText: chứa dòng nhắc, hiển thị vào lúc chạy chương trình khi
bạn đưa chuột vào vị trí của đối tượng
 BackColor: cho màu nền của đối tượng
 BackStyle: cho kiểu nền của đối tượng
 BordeStyle: cho kiểu viền ngoài của đối tượng
- Phương thức:
 Move: dịch chuyển đối tượng
 Refresh: quét lại đối tượng.
- Sự kiện:
 Click: sự kiện Click sảy ra vào lúc tực hiện chương trình, khi người sử
dụng nháy chuột vào đối tượng. Người lập trình có thể viết lệnh cho
sự kiện này thông qua thủ tục Click.
 DbClick: sự kiện Click sảy ra vào lúc tực hiện chương trình, khi người
sử dụng nháy kép chuột vào đối tượng.
 KeyPress: sự kiện KeyPress của một đối tượng xảy ra khi đối tượng
đang đang được chọn đồng thời người dùng ấn phím (trên bàn phím).
 Change: sự kiện Change của một đối tượng xảy ra khi có tác động lên
đối tượng.

 Thêm các đối tượng khác
Ngoài các đối tượng chuẩn được đưa sẵn vào hộp công cụ Visual Basic còn
cho phép bạn bổ xung vào hộp công cụ những đối tượng khác bằng cách chọn
các đối tượng mở rộng trong mục Control của cửa sổ Components (hình 2.4). Để
thêm một đối tượng bạn hãy đánh dấu chọn vào ô kiểm tra ở phía bên trái của
đối tượng đó, sau đó nháy chuột vào nút Apply. Đối tượng mà bạn chọn sẽ được
thêm vào phía cuối của hộp ToolBox. Sau đó ấn nút OK để xác nhận các lựa
chọn.
L.T.Vinh
9
2.5 Thao tác với một số đối tượng của VB
 Thao tác với các đối tượng cơ sở dữ liệu
Visual Basic cho phép bạn thao tác với cơ sở dữ liệu thông qua các đối
tượng dữ liệu. Ví dụ sau đây sẽ cho bạn cách mở một cơ sở dữ liệu được tạo
bằng Microsoft Access:
- Đối tượng Data: được sử dụng để mở một dữ liệu. Bạn hãy đặt Data vào
Form sau đó thực hiện các bước sau:
+ Đặt lại tên cho Data bằng cách thay đổi lại chuỗi Name trong hộp
Propety = DtcMyData (từ đây Data Control bạn đưa vào Form sẽ có tên là
DtcMyData)
+ Nối DtcMyData với cơ sở dữ liệu bằng cách: nháy chuột vào nút
“…” bên phải của thuộc tính DatabaseName. Trong hộp thoại bật ra bạn hãy
chọn đường dẫn tới file “Biblio.mdb”. Sau đó ấn OK.
+ Chọn “Authors” trong danh sách thả xuống phía bên phải của
thuộc tính RecordSouce. Thao tác này sẽ cho phép bạn mở bảng “Authors”
trong file cơ sở dữ liệu “Biblio.mdb”.
Hình 2.4 Hộp Commponents
L.T.Vinh
10
- Đối tượng DBGrid: Bạn hãy đưa đối tượng DBGrid vào hộp ToolBox,

sau đó đưa vào Form và thay đổi lại thuộc tính DataSouce = CtcMyData.
Sau khi đã tạo hai đối tượng Data Control và Data Grid như trên bạn hãy ấn
phím F5 để thực hiện chương trình. Bạn sẽ thấy được dữ liệu trong “Authors”
như hình 2.5.
 Thao tác với các đối tượng tệp tin
Visual Basic cho phép bạn thao tác với hệ thống quản lý tệp tin thông qua
các đối tượng Drive Box, Dir Box, FileListBox. Ví dụ sau đây sẽ tạo ra một
trình duyệt tệp tin. Bạn hãy tạo một Form mới và thực hiện các bước sau:
- Drive List Box: hộp danh sách ổ đĩa. Bạn hãy đưa hộp DirveListBox trên
ToolBox vào Form và đặt tên cho nó là “DrvMyCompute”.
- Dir Box: hộp danh sách thư mục. Bạn hãy đưa hộp DirListBox trên
ToolBox vào Form và đặt tên cho nó là “DbMyCompute”.
- FileListBox: hộp danh sách file. Bạn hãy đưa hộp fileListBox trên
ToolBox vào Form và đặt tên cho nó là “LfbMyCompute”.
- Sau khi đã thực hiện các bước trên bạn hãy viết các thủ tục sự kiện:
Thủ tục sự kiện DChange để mỗi khi chọn ổ đĩa thì hệ thống thư mục
được cập nhật như sau
Private Sub DrvMyCompute_Change()
DbMyCompute.Path = DrvMyCompute.Path
End Sub
Viết thủ tục sự kiện Change để mỗi khi chọn thư mục thì hệ thống file
được cập nhật như sau
Private Sub DbMyCompute_Change()
LfbMyCompute.Path = DbMyCompute.Drive
End Sub
Bây giờ, bạn hãy chạy chương trình và thử thay đổi ổ đĩa, thư mục…
bạn sẽ thấy cách làm việc của Drive Box, Dir Box, FileListBox và cách
hoạt động của các thủ tục sử lý sự kiện DrvMyCompute_Change(),
Hình 2.5 dữ liệu trong Authors
L.T.Vinh

11
DbMyCompute_Change().
- CommonDialogBox: không có sẵn trong hộp ToolBox, bạn phải thêm vào
ToolBox bằng cách chọn mục Microsoft CommonDialogBox trong hộp
Component. Đối tượng CommonDialogBox có hai thuộc tính quan trọng:
+ Action: có thể có các giá trị: 1 hộp Open file, 2 hộp Save file
+ Path: chứa đường dẫn tới file được chọn
2.6 Hộp đối thoại có sẵn
VB định nghĩa sẵn hai hộp đối thoại MsgBox và InputBox, chúng có các
tham số định dạng hiển thị. Bạn có thể sử dụng chúng thông qua các hàm
MsgBox và InputBox.
 MsgBox(): Bạn có thể dùng MsgBox để hiển thị thông báo và nhận lại trả
lời của người dùng. Hàm MsgBox() có các tham số như sau:
MsgBox(Message, DialogType, Title)
Message: là chuỗi thông báo.
DialogType: là số nguyên xác định dạng của hộp đối thoại. VB cũng quy
định sẵn các hằng dùng cho hộp đối thoại (bảng 2.1), bạn có thể sử dụng tên
hằng hoặc số nguyên trong DialogType.
Tên hằng Giá trị Nút hiển thị
MB_OK 0 OK
MB_OKCANCEL 1 OK, Cancel
MB_ABORTRETRYIGNORE 2 Aboart, Retry, Ignore
MB_YESNOCANCEL 3 Yes, No, Cancel
MB_YESNO 4 Yes, No
MB_RETRYCANCEL 5 Retry, Cancel
Bảng 2.1 Các hằng dùng trong MsgBox
Title: là chuỗi hiển thị trên thanh tiêu đề của hộp MsgBox.
Ví dụ: đoạn lệnh sau sẽ cho hiển thị hộp đối thoại như hình 2.6
Dim KQ As Integer
Dim Thong_bao, Nhan1 As String

Thong_bao = "Ban hay nhay chuot vao nut OK"
Nhan1 = "Thong bao"
KQ = MsgBox(Thong_bao, vbOKOnly, Nhan1)
 InputBox(): InputBox có thể được sử dụng để nhận thông tin từ người
dùng. Hàm InputBox() có các tham số như sau:
InputBox(Message, DialogType, Title)
Cách sử dụng hàm InputBox tương tự như hàm MsgBox. Hàm InputBox()
trả về một chuỗi do người dùng đánh vào do đó biến nhận giá trị trả về phải có
Hình 2.6 hộp thông báo
L.T.Vinh
12
kiểu String hoặc Variant.
2.7 Thiết kế Menu
Bạn có thể thiết kế menu trong Visual Basic bằng cách sử dụng Menu Editor
như sau:
- Chọn Menu Editor trong: Tool/Menu Editor trên thanh thực đơn. Bạn
cũng có thể mở Menu Editor bằng cách nháy phím phải chuột trên cửa sổ
Form và chọn Menu Editor trên menu thả xuống hoặc dùng phím nóng
Crt + E.
- Sau khi chọn Menu Editor, cửa sổ Menu Editor hiện ra trên màn hình
(như hình ). Các thành phần của Menu Editor gồm:
+ Caption: mục menu sẽ hiện ra trên menu
+ Name: tên của menu. Bạn sẽ sử dụng tên này để truy cập tới menu.
+ Index: mục chỉ số. Được sử dụng khi bạn thiết kế một mục menu
(cùng tên) có nhiều mục con, khi đó chỉ số Index sẽ trỏ tới các mục tương
ứng trong menu.
+ Shotcut: cho phép bạn tạo ra các tổ hợp phím nóng để truy cập tới
menu.
+ Next: được sử dụng khi bạn tạo mục tiếp theo cho menu.
+ Insert: chèn vào một mục mới vào vị trí đang được điểm sáng.

+ Delete: xoá mục menu dang được điểm sáng.
+ : dịch chuyển menu đang được điểm sáng lên trên.
+ : dịch chuyển menu đang được điểm sáng xuống dưới.
+ : dịch chuyển menu đang được điểm sáng xuống một bậc (tạo
Hình Cửa sổ Menu Editor
L.T.Vinh
13
menu con).
+ : dịch chuyển menu đang được điểm sáng lên một bậc (đưa lên
menu cha).
+ OK: chấp nhận menu đã tạo. Được sử dụng sau khi bạn đã tạo các
mục cho menu.
+ Cancel: huỷ menu đã tạo.
Sau khi tạo menu bạn có thể viết lệnh cho các mục menu bằng cách nháy
chuột lên các mục đó. Visual Basic sẽ tự động tạo ra thủ tục đáp ứng biến cố
Menu_Click cho mục này. Bạn chỉ việc viết lệnh vào thân thủ tục.
2.7 Sử lý tập tin cơ bản
Ngoài các đối tượng xử lý tệp tin Visual Basic còn cung cấp cho bạn một số
hàm để truy cập trực tiếp tới các dữ liệu chứa bên trong tệp tin theo 3 phương
thức: truy cập ngẫu nhiên, truy cập tuần tự và truy cập nhị phân.
- Để thao tác với tệp tin trước tiên bạn phải mở tệp tin như sau:
FileNumber = FreeFile
Open FileName For AccType As #FileNumber
File Number là một biến kiểu số nguyên nhận giá trị trả về của thẻ file chưa
được sử dụng (qua hàm FreeFile).
AccType là kiểu mở file, bạn có thể mở file theo các kiểu sau:
+ Input : mở file để đọc theo kiểu tuần tự
+ Output : mở file để ghi theo kiểu tuần tự
+ Append : mở file để ghi tiếp theo kiểu tuần tự. Cách mở file này tương
tự như Input, nhưng sau khi file được mở để ghi con trỏ file được đặt ở vị trí

cuối file.
+ Random : mở file theo kiểu ngẫu nhiên.
+ Binary : mở file theo kiểu nhị phân.
FileName là chuỗi chứa tên của file cần mở để đọc.
- Sau khi thao tác với tệp tin bạn cần phải đóng tệp tin bằng lệnh Close
Close #fileNumber
Lệnh Close sẽ đẩy toàn bộ dữ liệu trên vùng đệm file của hệ thống lên đĩa và
giải phóng thẻ file. Bạn cũng có thể sử dụng lệnh close như sau:
Close
Lệnh trên sẽ đóng toàn bộ các file đang mở.
- Các hàm xử lý tệp tin:
+ Print : ghi chuỗi ký tự vào file. Lệnh Print được sử dụng trong các file
mở để ghi theo kiểu Input và Apend. Cấu trúc lệnh Print như sau:
Print #FileNum, VarTXT
Trong đó #FileNum là thẻ file. VarTXT là chuỗi ký tự cần ghi vào file.
L.T.Vinh
14
+ Input$() : cho phép đọc một đoạn dữ liệu có độ dài được xác định trước.
Cấu trúc lệnh Input$() như sau:
Input$(Total, #FileNum)
Trong đó Total là số byte cần đọc.
+ Put : ghi dữ liệu vào file được mở theo kiểu nhị phân. Cấu trúc lệnh Put
như sau:
Put #FileNum, FPoiter, VarTXT
Trong đó FPoiter là số nguyên chỉ vị trí bắt đầu (tính bằng byte từ đầu
file) của chuỗi VarTXT trên file có số thẻ là #FileNum.
+ Get : đọc dữ liệu từ file được mở theo kiểu nhị phân. Cấu trúc lệnh Get
như sau:
Put #FileNum, FPoiter, VarTXT
+ Lof : nhận vào thẻ file và trả về chiều dài của tập tin tính theo byte

tương ứng với file đó. Cấu trúc hàm Lof như sau:
LengthOfFile = Lof(#FileNum)
Ví dụ: chương trình Phone sau đây minh hoạ cách tạo và thao tác trên tệp tin
PHONE.DAT. Bạn hãy thứ tự thực hiện các bước sau đây.
- Tạo một form mới, và xây dựng các đối tượng như trong bảng sau:
Đối tượng Thuộc tính Giá trị
Form Name
Caption
Height
Left
Top
Width
frmPhone
“”
3555
1530
1875
6705
TextBox Name
Height
Left
MaxLength
Text
Top
Width
txtName
285
840
40
“ ”

120
4335
TextBox Name
Height
Left
MaxLength
Text
Top
Width
txtPhone
285
840
40
“ ”
720
4335
TextBox Name
Height
Left
MaxLength
MultiLine
txtComments
1455
120
100
True
L.T.Vinh
15
Text
Top

Width
“ ”
1560
5055
CommandButton Name
Height
Left
Top
Width
cmdNew
495
5280
120
1215
CommandButton Name
Height
Left
Top
Width
cmdNext
495
5280
600
1215
CommandButton Name
Height
Left
Top
Width
cmdPrevieus

495
5280
1080
1215
CommandButton Name
Height
Left
Top
Width
cmdExit
495
6360
2520
1215
Lable Name
Caption
Height
Left
Top
Width
lblComment
Comments:
255
120
1320
975
Lable Name
Caption
Height
Left

Top
Width
lblPhone
Phone:
255
120
720
615
Lable Name
Caption
Height
Left
Top
Width
lblName
Name:
255
120
120
615
- Sau khi đã tạo Form như trên bạn bắt đầu viết các lệnh cho chương trình
L.T.Vinh
16
trong cửa sổ Code.
+ Bạn hãy tạo một module mới và lưu vào file với tên : PHONE.BAS. Bạn
định nghĩa cấu trúc mẩu tin trong PHONE.BAS như sau:
Option Explicit
Type PersonInfo
Name As String * 40
Phone As String * 10

Comment As String * 100
End Type
+ Các lệnh trong phần khai báo chung của form như sau
Option Explicit
Dim Person As PersonInfo
Dim FileNum As Integer
Dim RecordLen As Long
Dim CurentRecord As Long
Dim LastRecord As Long
+ Tạo thủ tục SaveCurrentRecord() trong frmPhone
Sub SaveCurrenRecord
Person.Name = txtName.Text
Person.Phone = txtPhone.Text
Person.Comments = txtComments.Text
Put #FileNum, CurrentRecord, Person
End Sub
+ Tạo thủ tục ShowCurrentRecord() trong frmPhone
Sub ShowCurrentRecord()
Get #FileNum, CurrentRecord, Person
txtName.Text = Trim(Person.Name)
txtPhone.Text= Trim(Person.Phone)
txtComments.Text= Trim(Person.Comments)
frmPhone.Caption = “Record ” + Str(CurrentRecord) + “/” Str(LastRecord)
End Sub
+ Tạo thủ tục Form_Load()
Sub Form_Load()
RecordLen = Len(Person)
FileNum = FreeFile
Open “PHONE.DAT” For Random As FileNum Len = RecordLen
CurrentRecord = 1

LastRecord = FileLen(“PHONE.DAT”) / RecordLen
If LastRecord = 0 Then
L.T.Vinh
17
LastRecord =1
End If
ShowCurrentRecord
End Sub
+ Tạo thủ tục cmdNew_Click(), trong frmPhone
Sub cmdNew_Cllick()
LastRecord = LastRecord
Person.Name = “”
Person.Phone = “”
Person.Comments = “”
Put #FileNum, LastRecord, Person
CurrentRecord = LastRecord
ShowCurrentRecord
txtName.SetFocus
End Sub
+ Tạo thủ tục cmdNext_Click(), trong frmPhone
Sub cmdNext_Click()
If CurrentRecord = LastRecord Then
MsgBox “End of file encountered !”, 48
Else
SaveCurrentRecord
CurrentRecord = CurrentRecord + 1
ShowCurrentRecord
End If
txtName.SetFocus
End Sub

+ Tạo thủ tục cmdPrevious_Click(), trong frmPhone
Sub cmdPrevious_Click()
If CurrentRecord = 1 Then
MsgBox “Beginning of file encountered !”, 48
Else
SaveCurrentRecord
CurrentRecord = CurrentRecord - 1
ShowCurrentRecord
End If
txtName.SetFocus
End Sub
+ Tạo thủ tục cmdExit_Click(),
trong frmPhone
Sub cmdExit_Click()
SaveCurrentRecord
Close FileNum
Hình 3.1 Hộp thoại Insert Object
L.T.Vinh
18
End
End Sub
3. OLE
OLE (Object Lingking and Embeding) là công nghệ kết nối và lồng ghép đối
tượng, nó cho phép chao đổi dữ liệu động. Khi bạn bổ xung điều khiển hộp chứa
OLE cho đồ án Visual Basic, bạn cung cấp cho người dùng cầu nối đến ứng
dụng khác.
3.1 Tạo các đối tượng OLE
Cách đơn giản nhất để tạo ra một đối tượng OLE là sử dụng hộp chứa OLE
có sẵn trên thanh công cụ. Bạn chỉ việc chọn đối tượng OLE, đưa vào Form.
Visual Basic sẽ tự động đưa ra cửa sổ Insert Object (hình 3.1), trên đó có ghi

danh mục các đối tượng OLE (chính xác là phần mềm có hỗ trợ OLE), bạn chỉ
cần chọn đối tượng OLE và chọn nút OK.
Bạn cũng có thể tạo bổ xung một đối tượng OLE bằng cách chọn
Object/Components và đến tab Inserttable Object. Sau đó, hãy đánh dấu lựa
chọn cho đối tượng bạn muốn làm việc trong hộp danh sách.
Ví dụ: bạn có thể bổ xung đối tượng Excel Wordsheet cho hộp công cụ bằng
cách điền vào hộp thoại Insertable Object như hình bên (hình 3.2). Sau khi chọn
nút OK đối tượng OLE Excel Wordseet xẽ được thêm vào hộp công cụ như hình
3.3.
Hình 3.2 Insertable Object
L.T.Vinh
19
3.2 Các phương pháp điều khiển hộp chứa OLE
Ngoài các phương pháp chung, đối tượng OLE có một số phương pháp
riêng, chuyên dụng như sau:
Creat Embed Method: phương pháp này cho phép tạo ra đối tượng OLE kiểu
lồng ghép. Để thực hiện trước hết bạn phải xác lập hai tính chất Class và
OLEType. OLEType Allowed =1, bạn phải dùng tính chất Class để xác định
kiểu của đối tượng OLE.
- Creat Link Method: Phương pháp này tạo đối tượng OLE từ tập tin hiện
hữu. Để thực hiện trước hết bạn phải xác lập tính chất OLETypeAllowed
và tính chất SouceDoc. Tính chất OLETypeAllowed có thể bằng 0
(Linked) hoặc 2 (Either). Tính chất SouceDoc cung cấp tên tập tin
- Copy Method: phương pháp này gửi toàn bộ dữ liệu và các tính chất lồng
ghép của đối tượng đến clipboard của Windows.
- Paste Method: phương pháp này sao chép từ clipboard của windows vào
điều khiển OLE.
- Update Method: phương pháp này kéo dữ liệu hiện hành của ứng dụng
đưa vào điều khiển OLE.
- Do Verb Method: phương pháp kích hoạt đối tượng OLE. Để thực hiện,

bạn cần xác định thông số Verb của thao tác này.
Hình 3.3 Microsoft Exel OLE
L.T.Vinh
20
- Close Method for OLE Object: phương pháp này sẽ đóng đối tượng OLE
và xoá mọi liên kết với đối tượng đã điều khiển nó.
- Delete Method: dùng để xoá đối tượng.
- Save to File Method: dùng để ghi đối tượng OLE cùng với dữ liệu điều
khiển nó vào file.
- ReadFromFile Method: dùng để tải đối tượng OLE cùng các dữ liệu điều
khiển trong file OLE.
- InsertObjDlg Method: phương pháp này kéo lên hộp điều khiển
InsertObject vào thời gian chạy chương trình.
- PasteSpecialDlg Method: hiển thị hộp thoại Paste Special ở thời gian
chạy chương trình, cho phép người dùng dán đối tượng từ clipboard theo
dạng thức chỉ định.
- FetchVerb Method: phương pháp này đưa ra các danh sách động từ được
ứng dụng hỗ trợ.
- SaveTo OLE1File Method: phương pháp này cho phép lưu đối tượng
OLE tương thích với phiên bản OLE cũ.
4. User ActivetX Control
Mỗi ActivetX control là một đối tượng, các thuộc tính, phương thức, thủ tục
xử lý sự kiện của nó được chứa trong tệp tin riêng biệt có phần mở rộng là
*.OCX. Sau khi đã đưa một ActivetX control vào Form bạn có thể thao tác với
nó như đối với các control chuẩn.
Bắt đầu từ phiên bản 5.0 Visual Basic mới cho phép người lập trình tự tạo ra
các ActivetX của riêng mình. Bạn có thể mở riêng một file soạn thảo ActivetX
bằng chọn lựa ActivetX Control từ cửa sổ New Project.
Việc soạn thảo ActivetX tương tự như soạn thảo Form ngoại trừ việc bổ
xung các tính chất chức năng.

Để bổ xung một thuộc tính bạn cần phải sử dụng cặp thủ tục Property
Get/Let và PropetyChanged.
1. Propety Get: nhận thông tin giá trị hiện hành của thuộc tính trên đối tượng.
2. Propety Let: gán giá trị thuộc tính cho đối tượng.
3. PropetyChanged: dùng để gán lại giá trị thuộc tính của đối tượng vào trong
bảng Property.
Ví dụ: Bạn có thể tạo ra một ActivetX Control gồm có hai đối tượng
lblCaption (Lable Caption), và Shape1 và viết Code như sau:
Option Explicit
Public Event Click()
Private Sub UserControl_Click()
RaiseEvent Click
End Sub
Private Sub UserControl_Initialize()
UserControl_Resize
End Sub
L.T.Vinh
21
Public Property Get HinhDang() As ShapeConstants
HinhDang = Shape1.Shape
End Property
Public Property Let HinhDang(ByVal vNewValue As ShapeConstants)
Shape1.Shape = vNewValue
End Property
Private Sub UserControl_Resize()
Width = 1500
Height = 800
Shape1.Move 0, 0, Width, Height
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

PropBag.WriteProperty "HinhDang", HinhDang, Extender.Name
PropBag.WriteProperty "Caption", Caption, Extender.Name
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
HinhDang = PropBag.ReadProperty("HinhDang", Extender.Name)
Caption = PropBag.ReadProperty("Caption", Extender.Name)
End Sub
Public Property Get Caption() As String
Caption = lblCaption.Caption
End Property
Public Property Let Caption(ByVal NewCaption As String)
lblCaption.Caption = NewCaption
End Property
Bạn hãy lưu ActivetX Control trên vào file “MyAti.OCX”, sau đó bổ xung
ActivetX Control vào Form bạn sẽ thấy cách hoạt động của nó.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×