Bài giảng Visual Basic
Trang 109/01/12 Design: Nguyễn Hiền Du
Lập trình hướng đối tượng
Là đưa cả giải thuật và cấu trúc dữ liệu vào
cùng một cấp Nghĩa là ta làm việc với các
gói bao gồm cả dữ liệu lẫn các phương thức
(hàm, thủ tục) để xử lý chúng
Trang 209/01/12 Design: Nguyễn Hiền Du
I Một số khái niệm cơ bản
1 Lớp (class):
• Lớp được ví như một khuôn mẫu dùng để tạo
ra các đối tượng Khi tạo một đối tượng từ một lớp, thì các đối tượng này là những đối tượng
hoạt động Các thành phần trên hộp công cụ có thể ví như lớp
giả sử ta bổ sung một nút lệnh vào biểu mẫu,
coi như ta đã tạo ra một đối tượng (Command1)
từ lớp CommdButton
Trang 309/01/12 Design: Nguyễn Hiền Du
2 Đóng kín (encapsulation)
Các thành phần của lớp là dữ liệu và phương thức thuộc lớp đó Rõ ràng đối tượng có tính
đóng kín, hay còn gọi là gói dữ liệu, tính đóng
kín là khái niệm chính yếu trong OOP Giống như một lọ thuốc có viên thuốc (dữ liệu) và tờ giấy trong đó có hướng dẫn dùng các viên thuốc
đó (phương thức), hai thứ đó được đóng kín trong lọ Nhờ tính năng đóng kín nên đối tượng
có thể ứng xử theo kiểu "hộp đen" cho nên có thể sử dụng lại và gỡ rối dễ dàng
Trang 409/01/12 Design: Nguyễn Hiền Du
3 Kế thừa (inheritance)
Việc tạo lớp dựa trên lớp đã có được gọi là tính
kế thừa Mục đích chính của tính kế thừa là
giúp ta dùng lại đối tượng mà không phải viết lại các thành phần của đối tượng
4.Đa hình (polymorphism):
Khi viết mã gửi một thông điệp cho đối tượng (gọi một phương thức), có thể phương thức đó nằm trong nhiều đối tượng mà khi biên dịch chư
a thể xác định ngay được là phương thức thuộc
đối tượng nào, mà phải chờ đến khi chạy chương trình Nghĩa là có thể xẩy ra nhiều hình thái (đa hình) trong việc lựa chọn một phương thức cụ thể, tức là "các đối tượng tự biết cách phản ứng trong những tình huống cụ thể"
Trang 509/01/12 Design: Nguyễn Hiền Du
II Tạo đối tượng trong VB
1 Khai báo Biến kiểu đối tượng
Có một số kiểu biến đối tượng được dùng khi khai báo sau:
Dim ObjA As Control
hoặc
Dim objB As Object
Cho phép ta ấn định biến objB cho bất kỳ đối tượng
VB nào Ta có thể dùng một kiểu biến Variant hay Object để tham chiếu một đối tượng VB bất kỳ
Trang 609/01/12 Design: NguyÔn HiÒn Du
Vi dô:
Dim A As TextBox
Set A = Text1
A.Text= Tin häc” ”
HoÆc
Dim A As Variant
Set A = Text1
A.Text= Tin häc” ”
Trang 709/01/12 Design: Nguyễn Hiền Du
2 Từ khoá New
Từ khoá New rất thông dụng để tạo các đối tư ợng VB vào thời gian thực hiện
- Giả sử bạn có một biểu mẫu tên Form1 trong
đề án Khai báo sau:
Dim frmA As New Form1
- Sẽ tạo một bản sao của Form1; frmA có các
tính chất giống như Form1
Lưu ý: Từ khoá New cũng được dùng với các đối tượng do chính ta tạo ra, Không dùng với các
điều khiển trên biểu mẫu
Trang 809/01/12 Design: Nguyễn Hiền Du
3 Hàm TypeName và các biến đối tượng
Chẳng cần phải dùng toán tử TypeOf để xác định xem
đang xử lý đối tượng nào Ta có thể dùng hàm
TypeName để xác định kiểu của một đối tượng cũng
như kiểu của một biến bất kỳ
Ví dụ
Private Sub Command1_Click()
Dim Abutton As Object
Set Abutton = Command1
Me.Print TypeName(AButton)
End Sub
Trang 909/01/12 Design: Nguyễn Hiền Du
4 Tập hợp controls
Có thể xem tập hợp (collection) như mảng, nó có thể tự động tăng phần tử hoặc giảm phần tử khi
có yêu cầu
Tính chất Count của tập hợp Controls báo cho ta
biết số lượng điều khiển đã nạp trên một biểu mẫu cụ thể
Để truy cập từng điều khiển riêng lẻ, ta dùng chỉ số: Controls(0), Controls(1) v.v
Mặc dù chỉ số bắt đầu là 0, nhưng Controls(0) có
thể không phải là điều khiển đầu tiên mà ta đã
bổ sung vào biểu mẫu
Trang 1009/01/12 Design: NguyÔn HiÒn Du
Private Sub Form_Load()
Dim I As Integer
Show
For I = 0 To Controls.Count - 1 Print Controls(I).Name
Next I
End Sub
Trang 1109/01/12 Design: Nguyễn Hiền Du
5 Bổ sung các điều khiển vào thời gian thực hiện
Cú pháp dùng Add để bổ sung các điều khiển
như sau:
Set ObjName =
FormName.Control.Add(ProgID, Key)
ObjName là biến đối tượng đã được khai báo trư
ớc Tham số ProgID là một chuỗi giúp VB xác
định được đích danh đối tượng cần bổ sung Với các điều khiển không phải thông qua Tool / Components, thì quy tắc của ProgID như sau: VB.ControlType
Trang 1209/01/12 Design: NguyÔn HiÒn Du
Private Sub Form_Load()
Dim A As Label
Set A =
Form1.Controls.Add("VB.Label",
"Label1")
Dim B As TextBox
Set B =
Form1.Controls.Add("VB.textbox",
"Text1")
End Sub
Trang 1309/01/12 Design: Nguyễn Hiền Du
6 Tạo Class module
Để tạo một môđun lớp mới vào thời gian thiết kế,
ta chọn Project/Add Class Module Tính chất
Name sẽ xác định tên của lớp đó
Bước 1: chọn Project/ Add Class Module và gõ
vào mã lệnh, sau đó đặt tên cho Class Module
Bước 2 Tạo một Form và khai báo biến có kiểu
đối tượng là tên của Class modul đó Khi đó nhung thủ tuc và biến được khai báo trong modul mới có thể thực hiện được
ví dụ:
Trang 1409/01/12 Design: Nguyễn Hiền Du
7 Dùng ActivieX.dll để tạo một Class Module sau đó dịch thành tệp dll
Bước 1: Khởi động ActiveX.dll và gõ mã lệnh vào Class
Module.
Bước 2: Đặt tên cho Project1 và Class Module
Bước 3: Dịch Class Module bằng cách Chọn File/Make
Bước 4: Đăng ký tệp Tên_tệp.dll bằng cách chọn:
Start/Run và gõ vào:
Regsvr32 c:\Tên_tệp.dll
Bước 5: Chọn Project/References sau đó chọn Browse
và đưa tệp vừa dịch vào danh sách, cuối cùng chọn OK
Bước 6: Khởi động Standard.exe và gõ mã lệnh