1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tự học visual basic 6 phần 2

10 3 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH TỰ HỌC VISUAL - Phần II KHOA CÔNG NGHỆ THÔNG TIN 2009 T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II MỤC LỤC Chương Một - Tự tạo Object Chương Hai – Debug 13 Chương Ba - Dùng Menu 25 Chương Bốn - Dùng Dialogs 38 Chương Năm - Dùng Đồ Họa (Phần I) 56 T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II Chương Một - Tự tạo Object Từ trước đến giờ, ta lập trình VB6 cách thiết kế Forms viết codes để xử lý Events controls Form Users click Button hay Listbox, v.v Nói chung, cách hữu hiệu để triển khai, ta hưởng lợi ích sau tốt nữa: Dùng lại code viết trước dự án khác Dễ nhận diện lỗi (error) phát xuất từ đâu Dễ triển khai dự án lớn cách phân phối thành nhiều dự án nhỏ Dễ bảo trì Mỗi lần dùng lại code, để y nguyên xi lý tưởng Việc gọi Reusability Nói cho ra, dùng lại thật ta cần dùng object code, code compiled rồi, tức hồn tồn khơng đụng đến source code Vì hể cho phép User sửa source code tạo hội cho bugs xuất hiện, lại phải debug lần Sự thách đố việc triển khai dự án phần mềm lớn thực thời hạn (on time), khơng lố tài khóa (within budget) dễ bảo trì (ease of maintenance) Muốn đạt mục tiêu ấy, ta phải triển khai nhanh cho chương trình có bugs, dễ bảo trì Giả dụ bạn đứng tổ chức đám cưới Thử tưởng tượng biết 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ệ thủ tục nghi lễ, tiếp tân, hoạt náo viên v.v Nếu bạn lo thật khơng biết nhớ cho hết Cũng may nhà hàng đảm trách việc in ấn thiệp mời, ban nhạc văn nghệ hoạt náo viên Thủ tục nghi lễ khơng qua bác Sáu Đạt, bác nhận lời mua quà cáp, lo tiếp tân, xe cộ thủ tục, nghi lễ Bác liên lạc với Mục sư chủ lễ để dặn chỗ nhà thờ đặt ngừơi giựt chuông người đàn Anh Tư Thơng có người bạn làm chủ tiệm hình, nên anh nhận trách nhiệm mướn người lo chụp hình, quay phim Như việc bạn tổ chức đám cưới rút lại soạn danh sách quan khách, diễn văn, chỗ ngồi dặn chỗ cho cặp vợ chồng hưởng tuần trăng mật Sở dĩ bạn cảm thấy trách nhiệm tổ chức khơng nặng nề nhà hàng, bác Sáu Đạt anh Tư Thông tự lo gánh vác khâu rắc rối Cái hay T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II người nầy tự lo định chi tiết cần phải làm khâu họ Chỉ cần lắm, họ liên lạc để lấy ý kiến bạn Họ giống người thầu bạn Chắc bạn lưu ý thí dụ tổ chức đám cưới nầy cho thấy nói chung muốn triển khai dự án lớn ta cần phải nhờ người thầu giúp đở Quả thật, cách quản trị viên cơng trình làm từ xưa đến Bây trở lại chuyện lập trình, ta tổ chức cách triển khai dự án phần mềm giống tổ chức đám cưới nói tốt q Thật ra, khơng phải lý thuyết gia phần mềm không nghĩ đến chuyện trước đây, để thực việc người ta cần triển khai phương tiện, dụng cụ thích hợp Chỉ vịng 15 năm trở lại đây, việc trở nên cụ thể qua Operating Systems tinh vi, dùng Windows, ngơn ngữ lập trình Eiffel, SmallTalk, C++ v.v Lập trình theo hướng đối tượng (Object Oriented Programming) Nói cách nơm na, lập trình theo hướng đối tượng thiết kế phận phần mềm chương trình, gọi Objects cho phận tự lo liệu cơng tác giống người thầu ngồi đời Chắc có lẽ bạn hỏi Sub hay Function mà bạn viết để xử lý giai đoạn chương trình đảm trách vai trị thầu khơng? Người thầu làm cơng tác (Subs Functions) mà cịn chịu trách nhiệm thứ vật dụng cần thiết (data) cho việc Có cách định nghĩa khác cho Object Object gồm có data structure Subs/Functions làm việc data Thông thường, ta dùng Objects giám thị chúng, ngược lại có cố ta muốn chúng báo cáo cho ta biết Trong VB6, Forms, Controls hay ActiveX Objects mà ta dùng lâu Lấy thí dụ Listbox Một Listbox tự quản lý items hiển thị bên Ta biết listbox List1 có items cách hỏi List1.ListCount Ta biết item vừa selected cách hỏi List1.ListIndex Ta thêm item vào listbox cách T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II gọi method AddItem List1, v.v Nói cho ra, Object thực thể Class Nếu Listbox Class List1, List2 thực thể Listbox Cũng giống Bà Tư Cháo Lịng Dì Sáu Bánh Tầm thực thể Class Đầu Bếp Ngay form tên frmMyForm mà ta viết VB6 chẳng hạn, Class Thường thường ta dùng thẳng frmMyForm sau: frmMyForm.Show Trong trường hợp nầy thật frmMyForm Class dùng y Object Chớ muốn, ta tạo hai, ba Objects Class frmMyForm lúc 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ụ ta declare firstForm secondForm Objects Class frmMyForm Sau ta làm nên (instantiate) Objects firstForm secondForm statements Set = New firstForm secondForm gọi instances Class frmMyForm Class giống khn, cịn Objects giống bánh làm từ khuôn Chắc bạn để ý thấy VB6 từ dùng hai từ Class Object lẫn lộn Đều nầy không quan trọng, miễn bạn nắm vững ý nghĩa chúng VB6 có yểm trợ Class mà ta triển khai instantiate Objects dùng Một Class VB6 có chứa data riêng nó, có Subs Functions mà ta gọi Ngồi Class cịn Raise Events, tức báo cho ta biết chuyện xãy bên Cũng giống Event Click CommandButton, User clicks lên button Raise Event Click ta xử lý Sub myCommandButton_Click(), chẳng hạn Classtrong VB6 khơng có hổ trợ Visual components, tức khơng có chứa controls TextBox, Label v.v Tuy nhiên, ta lấy control có sẵn từ bên ngồi đưa cho Object Class dùng T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II Bây bắt đầu viết Class Bạn mở Project loại Standard EXE Visual Basic Sau dùng Menu Command chọn Add Class Module: Khi Add Class Module dialog chọn Class Module click Open Bạn thấy mở khung trắng Project Explorer với Properties Window Trong Properties Window, sửa Name property Class thành clsBox đây: T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II Kế đánh vào dòng code đây, Option Explicit Private mX As Integer Private mY As Integer Private mWidth As Integer Private mHeight As Integer Public Property Let X(ByVal vValue As Integer) mX = vValue End Property 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 T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II 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) Canvas.Line (mX, mY)-(mX + mWidth, mY + mHeight), , B End Sub Public Sub ClearBox(Canvas As Object) Canvas.Line (mX, mY)-(mX + mWidth, mY + mHeight), Canvas.BackColor, B End Sub Class clsBox có Properties: X, Y, Width Height Ta instantiate Box từ clsBox Mỗi Box có tọa độ (X,Y) kích thước chiều rộng chiều cao (width, height) Thật ta dùng Public statement để declare biến X, Y, Width Height Nhưng ta cố ý declare chúng Private, dạng mX, mY, mWidth mHeight Khi ta muốn thay đổi trị số chúng, ta dùng cách viết code bình thường (thí dụ: myBox.X = 80 ) Nhưng chương trình xử lý assignment statement ấy, execute loại method (giống Sub) gọi Property Let X (vValue) Ta thấy vValue assigned cho mX (i.e mX = vValue ), Private variable X Như công việc nầy chẳng khác sửa đổi Public variable X Tuy nhiên, ta viết thêm code Property Let X để làm Bạn có nhớ thiết kế Label, lần bạn dùng Property Window để edit Font size, forcolor hay backcolor properties Label thay đổi, mà kết thay đổi có hiệu lực lập tức, nghĩa Label hiển thị trở lại với trị số property Đó method Property có code bảo Label redisplay Ngược lại, ta dùng property X Object myBox, ta đọc trị số thơi mà cịn execute method Property Get X Nói tóm lại, Property cho ta hội để execute method User đọc hay viết trị số variable Thí dụ ta muốn kiểm soát để chấp nhận trị số tọa độ X khơng phải số âm Ta sửa Property Let X lại sau: T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II Public Property Let X(ByVal vValue As Integer) If (vValue >= 0) Then mX = vValue End If End Property Property Read Only hay Write Only Nếu muốn Property Read Only ta không cung cấp Property Let Nếu muốn Property Write Only ta khơng cung cấp Property Get Ngồi làm việc với Object, thay Data type thơng thường, ta phải dùng Property Set, thay Property Let Thí dụ ta cho clsBox Property mới, gọi Font dùng object class stdFont VB6 Trong clsBox ta declare Private variable mFont viết Property Set Font sau: Private mFont As StdFont Public Property Set Font(ByVal newFont As StdFont) Set mFont = newFont End Property Ta dùng property Font myBox (thuộc Class clsBox) sau: ' Declare an object of Class StdFont of VB6 Dim myFont As StdFont Set myFont = New StdFont myFont.Name = "Arial" myFont.Bold = True Dim myBox As clsBox Set myBox = New clsBox Set myBox.Font = myFont ' Call the Property Set method Class clsBox có hai Public Subs, DrawBox ClearBox ClearBox vẽ box DrawBox, dùng BackColor ảnh (canvas), nên coi xóa box có sẵn Do đó, muốn, bạn sửa Sub DrawBox lại chút để nhận Optional draw color sau: Public Sub DrawBox(Canvas As Object, Optional fColor As Long) If IsMissing(fColor) Then Canvas.Line (mX, mY)-(mX + mWidth, mY + mHeight), , B Else Canvas.Line (mX, mY)-(mX + mWidth, mY + mHeight), fColor, B End If End Sub T Ự H ỌC VISUAL BASIC 6.0 - PH ẦN II Trong thí dụ trên, Optional parameter fColor tested function IsMissing Nếu fColor BackColor canvas ta có hiệu ClearBox Trong form chương trình dùng để test clsBox, ta refer đến object thuộc class clsBox, IDE Intellisense hiển thị Properties Subs/Functions clsBox hình đây: Trong chương trình nầy, ta click nút Draw Box instantiate, cho tọa độ X,Y kích thước Width, Height, vẽ form Chữ Me code nói đến form frmClass ... ỌC VISUAL BASIC 6. 0 - PH ẦN II MỤC LỤC Chương Một - Tự tạo Object Chương Hai – Debug 13 Chương Ba - Dùng Menu 25 Chương Bốn - Dùng Dialogs 38 Chương Năm - Dùng... Dialogs 38 Chương Năm - Dùng Đồ Họa (Phần I) 56 T Ự H ỌC VISUAL BASIC 6. 0 - PH ẦN II Chương Một - Tự tạo Object Từ trước đến giờ, ta lập trình VB6 cách thiết kế Forms viết codes để xử... chức khơng nặng nề nhà hàng, bác Sáu Đạt anh Tư Thông tự lo gánh vác khâu rắc rối Cái hay T Ự H ỌC VISUAL BASIC 6. 0 - PH ẦN II người nầy tự lo định chi tiết cần phải làm khâu họ Chỉ cần lắm,

Ngày đăng: 20/10/2022, 10:17

HÌNH ẢNH LIÊN QUAN

Properties và Subs/Functions của clsBox như trong hình dưới đây: - Tự học visual basic 6   phần 2
roperties và Subs/Functions của clsBox như trong hình dưới đây: (Trang 10)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w