Tài liệu Khóa Hàm Thụ Visual Basic 6.0_ Chương 8 doc - Pdf 87


Khóa Hàm Thụ Visual Basic 6.0
Chương Tám - Tự tạo Object
T
ừ trước đến giờ, ta lập trình VB6 bằng cách thiết kế các Forms rồi viết
codes để xử lý các Events của những controls trên Form khi Users click
một Button hay Listbox, .v.v.. Nói chung, cách ấy cũng hữu hiệu để triển
khai, nhưng nếu ta có thể hưởng được các lợi ích sau đây thì càng tốt hơn
nữa:
1. Dùng lại được code đã viết trước đây trong một dự án khác
2. Dễ nhận diện được một lỗi (error) phát xuất từ đâu
3. Dễ triển khai một dự án lớn bằng cách phân phối ra thành nhiều dự
án nhỏ
4. Dễ bảo trì
Mỗi lần dùng lại code, nếu để y nguyên xi con là lý tưởng. Việc ấy được gọi
là Reusability. Nói cho đúng ra, dùng lại được thật sự là khi ta chỉ cần
dùng object code, đó là code đã được compiled rồi, tức là hoàn toàn
không đụng đến source code. Vì hể cho phép User sửa source code là tạo
cơ hội cho bugs xuất hiện, rồi lại phải debug một lần nữa.Sự thách đố
chính của việc triển khai một dự án phần mềm lớn là thực hiện đúng thời
hạn (on time), không lố tài khóa (within budget) và dễ bảo trì (ease of
maintenance). Muốn đạt được các mục tiêu ấy, ta phải triển khai nhanh và
làm sao cho chương trình ít có bugs, dễ bảo trì. Giả dụ bạn đứng ra tổ
chức một đám cưới. Thử tưởng tượng biết bao nhiêu chuyện phải làm: từ
danh sách quan khách, thiệp mời, ẩm thực, xe cộ, chụp hình, quay phim,
văn nghệ cho đến thủ tục nghi lễ, tiếp tân, hoạt náo viên ..v.v.. Nếu chỉ
một mình bạn lo thật không biết làm sao nhớ cho hết. Cũng may là nhà
hàng sẽ đảm trách luôn cả việc in ấn thiệp mời, ban nhạc văn nghệ và cả
hoạt náo viên. Thủ tục nghi lễ thì không ai qua được bác Sáu Đạt, và bác
đã nhận lời mua quà cáp, lo về tiếp tân, xe cộ và thủ tục, nghi lễ. Bác
cũng sẽ liên lạc với Mục sư chủ lễ để dặn chỗ nhà thờ và sắp đặt ngừơi

một Object gồm có data structure và các Subs/Functions làm việc trên các
data ấy. Thông thường, khi ta dùng Objects ít khi giám thị chúng, ngược
lại nếu khi có sự cố gì thì ta muốn chúng báo cáo cho ta biết.Trong VB6,
các Forms, Controls hay ActiveX là những Objects mà ta vẫn dùng lâu
nay. Lấy thí dụ như Listbox. Một Listbox tự quản lý các items hiển thị bên
trong nó. Ta biết listbox List1 đang có bao nhiêu items bằng cách hỏi
List1.ListCount. Ta biết item nào vừa mới được selected bằng cách hỏi
List1.ListIndex. Ta thêm một item vào listbox bằng cách gọi method
AddItem của List1, ..v.v.. Nói cho đúng ra, Object là một thực thể của một
Class. Nếu Listbox là một Class thì List1, List2 là các thực thể của Listbox.
Cũng giống như Bà Tư Cháo Lòng và Dì Sáu Bánh Tầm là các thực thể của
Class Đầu Bếp.Ngay cả một form tên frmMyForm mà ta viết trong VB6
chẳng hạn, nó cũng là một Class. Thường thường ta dùng thẳng
frmMyForm như sau:
frmMyForm.Show
Trong trường hợp nầy thật ra frmMyForm tuy là một Class nhưng được
dùng y như một Object. Chớ nếu muốn, ta có thể tạo ra hai, ba Objects
của Class frmMyForm cùng một lúc như trong thí dụ sau:
Dim firstForm As frmMyForm
Dim secondForm As frmMyForm
Set firstForm = New frmMyForm
Set secondForm = New frmMyForm
firstForm.Show
secondForm.Show
Trong thí dụ trên ta declare firstForm và secondForm là những Objects của
Class frmMyForm. Sau đó ta làm nên (instantiate) các Objects firstForm
và secondForm bằng statements Set... = New... firstForm và secondForm
còn được gọi là các instances của Class frmMyForm. Class giống như cái
khuôn, còn Objects giống như những cái bánh làm từ khuôn ấy. Chắc bạn
đã để ý thấy trong VB6 từ dùng hai từ Class và Object lẫn lộn nhau. Đều


Public Property Get X() As Integer
X = mX
End Property

Public Property Let Y(ByVal vValue As Integer)
mY = vValue
End Property

Public Property Get Y() As Integer
Y = mY
End Property

Public Property Let Width(ByVal vValue As Integer)
mWidth = vValue
End Property

Public Property Get Width() As Integer
Width = mWidth
End Property

Public Property Let Height(ByVal vValue As Integer)
mHeight = vValue
End Property

Public Property Get Height() As Integer
Height = mHeight
End Property

Public Sub DrawBox(Canvas As Object)

mX = vValue
End If
End Property
Property có thể là Read Only hay Write Only. Nếu muốn một Property là
Read Only thì ta không cung cấp Property Let. Nếu muốn một Property là
Write Only thì ta không cung cấp Property Get. Ngoài ra nếu làm việc với
Object, thay vì Data type thông thường, thì ta phải dùng Property Set,
thay vì Property Let.Thí dụ ta cho clsBox một Property mới, gọi là Font
dùng object của class stdFont của VB6. Trong clsBox ta declare một
Private variable mFont và viết một Property Set Font như sau:
Private mFont As StdFont
Public Property Set Font(ByVal newFont As StdFont)
Set mFont = newFont
End Property


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status