1 Khái niệm cơ sở về lập trình
• Cơ bản về chương trình hướng sự kiện
• Các module mã lệnh trong Visual Basic
• Sử dụng Code Editor
• Qui ước viết lệnh
• Biến số và hằng số
• Kiểu dữ liệu
• Mảng
• Hàm và thủ tục
• Cấu trúc điều khiển
1.1 Cơ bản về chương trình hướng sự
kiện
Một sự kiện là 1 hành động nhận biết được bởi form và control. Chương
trình hướng-sự kiện gọi đoạn mã lệnh Basic để đáp ứng 1 sự kiện. Mỗi
form và control trong Visual Basic có 1 tập xác định trước các sự kiện. Nếu
một trong số những sự kiện đó xảy đến và có mã lệnh gắn với thủ tục sự
kiện, Visual Basic sẽ gọi đoạn lệnh đó.
Mặc dù đối tượng trong Visual Basic tự động nhận ra tập định nghĩa trước
các sự kiện, lập trình viên mới là người quyết định các đối tượng có đáp
ứng hay không và đáp ứng thế nào với 1 sự kiện cụ thể. Mỗi sự kiện có 1
phần mã lệnh tương ứng với nó dưới dạng 1 thủ tục đáp ứng sự kiện. Để
điều khiển các 1 đối tượng đáp ứng 1 sự kiện, chúng ta cần viết mã lệnh
với thủ tục sự kiện tương ứng.
Trình tự hoạt động của 1 chương trình hướng-sự kiện thường như sau:
1. Chương trình khởi động, form được nạp và hiển thị.
2. Form hay control trên form nhận được 1 sự kiện tác động. Sự kiện đó
có thể gây ra bởi người dùng (nhấn 1 phím), bởi hệ thống (1 sự kiện
gây ra bởi bộ định giờ timer), hay trực tiếp bởi mã lệnh của ta.
3. Nếu có phần mã lệnh tương ứng với thủ tục sự kiện, nó sẽ được gọi.
4. Chương trình chờ cho sự kiện kế tiếp.
Chú ý: Nhiều sự kiện xảy ra liên quan tới những sự kiện khác. Ví dụ, khi
sự kiện DblClick xảy ra, sự kiện MouseDown, MouseUp, và Click cũng xảy
ra.
1.2 Các module mã lệnh trong Visual
Basic
Mã lệnh trong Visual Basic được lưu trong các module. Có 3 loại module:
form, standard, và class.
Chương trình đơn giản chỉ gồm 1 form và tất cả mã lệnh của chương trình
nằm trong module form. Khi chương trình phức tạp thêm, lớn hơn, sự có
nhiều form hơn. Sẽ có phần mã lệnh có thể dùng chung giữa các form. Để
tránh trùng lặp, chúng có thể được đưa vào module tách riêng các form –
gọi là module standard. Dần dần, chúng ta có thể sẽ xây dựng 1 thư viện
các module chứa các thủ tục dùng chung.
Mỗi module standard, class và form có thể chứa:
• Phần khai báo – Declarations: Chứa khai báo Hằng số, kiểu, biến hay
thư viện kết nối động (dynamic-link library – DLL).
• Phần các thủ tục – Procedures: Chứa thủ tục, hàm số, thủ tục thuộc
tính có thể được gọi trong mỗi module.
1.2.1 Module Form
Module form (trong các tệp *.FRM) chứa chứa các thủ tục đáp ứng sự kiện
trên form, các thủ tục dùng chung trong form, các khai báo ở mức form về:
biến, hằng, kiểu, thủ tục bên ngoài. Mã lệnh trong mỗi form được dùng
riêng trong form đó và đôi khi mã lệnh trong 1 form có thể tham chiếu tới
các form khác.
1.2.2 Module Standard
Module standard (trong các tệp *.BAS) chứa thủ tục và khai báo truy nhập
được bởi các module khác trong chương trình, hay thậm chí bởi các
chương trình khác nhau.
1.2.3 Module Class
Modules class (trong các tệp *.CLS) là cơ sở lập trình hướng đối tượng
trong Visual Basic. Chúng ta viết mã lệnh trong module class để tạo những
đối tượng mới với những thuộc tính và phương thức riêng. Thực ra, form
chính là các module class, nơi có thể đặt các control và hiển thị các cửa sổ
form.
Chú ý: ActiveX Documents, ActiveX Designers, và User Controls: là
những loại module mở rộng (với tên tệp có phần mở rộng khác). Có thể
xem những module đó tương tự như module form.
1.3 Sử dụng Code Editor
Code Editor của Visual Basic là một cửa sổ nơi ta viết phần lớn mã chương
trình. Nó giống một trình soạn thảo được chuyên hoá cao với nhiều tính
năng tạo thuận lợi cho việc viết mã Visual Basic.
Một cửa sổ riêng được mở cho mỗi module ta chọn từ Project Explorer. Mã
nằm trong mỗi module được chia thành các phần riêng cho từng đối tượng
trong module.
Mỗi module form gồm:
- Phần general: chứa phần khai báo và các thủ tục dùng chung.
- Phần thủ tục sự kiện cho từng đối tượng.
Để truy nhập tới phần mã lệnh cần viết, nên sử dụng hộp combo box trái rồi
hộp combo box phải.
Visual Basic có chức năng Auto Code Completion giúp viết mã lệnh trong
Code Editor được dễ dàng.
Để chọn phần từ nào đó, chuyển thanh sáng tới đó, rồi nhấn TAB.
Ngoài ra, chức năng Bookmarks giúp đánh dấu 1 vị trí mã lệnh để có thể
quay lại được nhanh chóng (Edit | Bookmarks).
1.4 Qui ước viết lệnh trong Visual Basic
1.4.1 Chia 1 lệnh thành nhiều dòng
Bằng cách sử dụng ký tự: [ _ ]
dtaTilesOfPublishers.RecordSource = _
"SELECT * FROM Titles, Publishers" _
& "WHERE Publishers.PubId = Titles.PubID" _
& "AND Publishers.State = 'CA'"
Trong một số trường hợp cách chia 1 câu lệnh này không thực hiện được:
nối các dòng chú giải, ...
1.4.2 Nối nhiều lệnh vào 1 dòng
Bằng cách sử dụng kí tự: [ : ]
txtMsg.Text = "Hello" : Red = 255 : txtMsg.BackColor = _
Red
1.4.3 Thêm chú giải vào mã lệnh
Bằng cách sử dụng kí tự: [ ‘ ]
' This is a comment beginning at the left edge of the
' screen.
txtMsg.Text = "Hi!" ' Place friendly greeting in
' text box.
1.4.4 Hệ thống số
Cơ số 10
(Decimal)
Cơ số 8
(Octal)
Cơ số 16
(Hexadecimal
)
9 &O11 &H9
15 &O17 &HF
16 &O20 &H10
20 &O24 &H14
255 &O377 &HFF
1.4.5 Qui tắc đặt tên
Tên thủ tục, hàm, biến, hằng phải tuân theo qui
tắc:
• Bắt đầu bằng kí tự chữ
• Không chứa ký tự phân cách (như [ . ] hay
kí tự rỗng), ký tự khai báo kiểu.
• Không dài hơn 255 kí tự. Tên của control,
forms, class, và module không vượt quá 40
kí tự.
• Không trùng với các từ khoá của ngôn ngữ.
1.5 Biến số
Biến số là nơi lưu trữ tạm thời giá trị. Biến thường được định nghĩa bởi
người sử dụng. Chúng ta có thể xem các thuộc tính của 1 đối tượng như
biến.
ApplesSold = 10
ApplesSold = ApplesSold + 1
txtSales.txt = ApplePrice * ApplesSold
1.5.1 Khai báo biến
Dim variablename [As type]
Biến khai báo với Dim trong 1 thủ tục tồn tại khi thủ tục đó được chạy; Khi
thủ tục kết thúc, giá trị của biến đó được giải phóng; Tức biến này có phạm
vi địa phương (local) trong thủ tục mà nó được khai báo.
Phạm vi cơ bản của biến:
• Biến khai báo trong phần Declarations của 1
module form, standard, hay class,
chứ không phải bên trong 1 thủ tụccó thể được sử dụng bởi mọi thủ
tục trong module.
• Biến khai báo với từ khoá Public sử dụng được trong toàn
chương trình.
• Biến khai báo với từ khoá Static vẫn lưu tiếp giá trị của nó ngay cả
khi thủ tục chứa khai báo của nó đã kết thúc.
Chú ý: Trong 1 phạm vi, không được có 2 biến khai báo trùng tên.
1.5.2 Khai báo không tường minh
Trong Visual Basic, biến có thể không khai báo trước khi sử dụng:
Function SafeSqr(num)
TempVal = Abs(num)
SafeSqr = Sqr(TempVal)
End Function
Tuy nhiên, điều này dễ dẫn sinh lỗi trong chương trình:
Function SafeSqr(num)
TempVal = Abs(num)
SafeSqr = Sqr(TemVal)
End Function
1.5.3 Khai báo tường minh
Nên luôn khai báo biến trước khi sử dụng.