1 Tìm hiểu Visual basic 6 1.1 Thuộc tính phương thức và sự kiện 1.1.1 Đối tượng Trong VB, đối tượng là những thành phần tạo nên giao diện giữa người sử dụng cho ứng dụng.. Mặc dù mỗi đối
Trang 11 Tìm hiểu Visual basic 6
1.1 Thuộc tính phương thức và sự kiện
1.1.1 Đối tượng
Trong VB, đối tượng là những thành phần tạo nên giao diện giữa người sử dụng cho ứng dụng Các điều khiển là những đối tượng Những nơi chứa (container) như biểu mẫu(form), khung(frame), gay hộp ảnh (picture box) cũng là một đối tượng
VB 6 hỗ trợ một cách lập trình tương đối mới, lập trình hướng đối tượng (Object Oriented Programming)
Trong lập trình cổ điển, ta có kiểu lập trình theo cấu trúc Nếu như ứng dụng được thiết kế để giải quyết một vấn đề lớn, thì lập trình viên có thể chia thành nhiều vấn đề nhỏ và viết các đoạn chương trình nhỏ để giải quyết riêng từng cái
Với lập trình hướng đối tượng, lập trình viên sẽ chia nhỏ vấn đề cần giải quyếtthành các đối tượng Từng đối tượng sẽ có đời sống riêng của nó Nó có các đặc điểm mà ta gọi là thuọcc tính và những chức năng riêng biệt mà ta gọi là phương thức lập trình viên cần đưa ra các thuộc tính và phơưng thức mà các đối tượng cần thể hiện
1.1.2 Thuộc tính
Nói một cách đơn giản, thuộc tính mô tả đối tượng
Mỗi đối tượng cộng đều có một bộ thuộc tính mô tả đối tượng Biểu mẫu và điều khiển đều có thuộc tính Thậm chí màn hình và máy in là những đối tượng chỉ cho phép can thiệp lúc thi hành cũng có thuộc tính
Mặc dù mỗi đối tượng có những bộ thuộc tính khác nhau, nhưng trong đó vẫn còn một số thuộc tính thông dụng cho hầu hết các điều khiển.(bạn có thể xem toàn bộ thuộc tính của một điều khiển bằng cách chọn vào điều khiển và mở cửa sổ PROPERTIES trong Visual Basic)
Các thuộc tính thông dụng:
Thuộc tính Giải thích
Left Vị trí cạnh trái của điều khiển so với vật chứa nó
Top Vị trí cạnh trên của điều khiển so với vật chứa nó
Hieght Chiều cao của điều khiển
Width Chiều rộng của điều khiển
Name Một giá trị chuỗi được dùng để nói đến điều khiển
Enable Giá trị logic (True hoặc False) quyết định người sử dụng có được làm
việc với điều khiển hay không Visible Giá trị logic (True hoặc False) quyết định người sử dụng có thấy điều
khiển hay không Một thuộc tính quan trọng khác là BorderStyle, quyết định các thành phần của cửa sổ (như thanh tiêu đề, nút phóng to thu nhỏ…) mà một biểu mẫu sẽ có
Trang 2Bảng sau đây liệt kê 6 giá trị của thuộc tính này.
Giá trị Hiệu ứng trên biểu mẫu
0 – None Không có cạnh viền, không thanh tiêu đề, không được di
chuyển Giá trị này thường được dùng cho cửa sổ khởi động chương trình
1 – Fixed Single không thể co giãn cửa sổ bằng cách kéo rê cạnh viền, nhưng có
thể dùng nút phóng to hoặc thu nhỏ Giá trị này được dùng cho những cửa sổ có kích cỡ cố định nhưng vẫn xuất hiện trên thanh Taskbar
2 – Sizable Có thể co giãn cửa sổ bằng cách kéo rê cạnh viền và dùng nút
phóng to hoặc thu nhỏ Giá trị dùng cho những cửa sổ thông dụng
3 – Fixed Dialog Không thể co giãn và không có thể dùng nút phóng to hoặc thu
nhỏ, Giá trị này dùng cho các cửa sổ đơn giản như mật khẩu 4- Fixed Tool
Window tương tự Fixed Dialog nhưng thanh tiêu đề ngắn hơn Font trênthanh tiêu đề và nút Close cũng nhỏ hơn giá trị này dùng cho
các thanh công cụ di động
5 – Sizable Tool
Window Tương tự như Fixed Tool Window nhưng có thể co giãn được.Giá trị này dùng cho những cửa sổ Properties của Visual Basic
1.1.3 Phương thức
Là những đoạn chương trình chứa trong điều khiển, cho điều khiển biết cách thức để thực hiện một công việc nào đó, chảng hạn dời điều khiển đến một vị trí mới trên biểu mẫu Tương tự thuộc tính, mỗi điều khiển có những phương thức khác nhau, nhưng vẫn có một số phương thức rất thông dụng cho hầu hết các điều khiển
Các phương thức thông dụng
Phương thức Giải thích
Move Thay đổi vị trí một đoói tượng theo yêu cầu của chương trình
Drag Thi hành hoạt động kéo và thả của người sử dụng
SetFocus Cung cấp tầm ngắm cho đối tượng được chỉ ra trong lệnh gọi
phương thức ZOrder quy định thứ tự xuất hiện của các điều khiển trên màn hình
Trang 31.1.4 Sự kiện
Nếu như thuộc tính mô tả đối tượng, phương thức chỉ ra cách thức đối tượng hành động thì sự kiện là những phản ưúng của đối tượng
Tương tự thuộc tính và phương thức, mỗi điều khiển có những bộ sự kiện rất thông dụng với hầu hết các điều khiển Các sự kiện này xảy ra thường là kết quả của một hành động nào đó, như
là di chuyển chuột, nhấn nút bàn phím, hiặc gõ vào hộp văn bản kiểu sự kiện này được gọi là sự kiện khởi tạo bởi người sử dụng, và ta sẽ phải lập trình cho chúng
các sự kiện thông dụng
Sự kiện Xảy ra khi
Change Người sử dụng sửa đổi chuỗi ký tự trong hộp kết hợp hoặc hộp văn
bản Click Người sử dụng dùng chuột click lên đối tượng
Dblclick Người sử dụng dùng chuột click đúp lên đối tượng
DragDrop Người sử dụng kéo rê một đối tượng sang nơi khác
DragOver Người sử dụng kéo rê một đối tượng ngang qua một điều khiển khác
GotFocus Đưa một đối tượng vào tầm ngắm của người sử dụng
KeyDown Người sử dụng nhấn một nút trên bàn phím trong khi một đối tượng
đang trong tầm ngắm KeyPress Người sử dụng nhấn và thả một nút trên bàn phím trong khi một đối
tượng đang trong tầm ngắm KeyUp Người sử dụng thả một nút trên bàn phím trong khi một đối tượng
đang trong tầm ngắm LostFocus Đưa một đối tượng ra khỏi tầm ngắm
MouseDown Người sử dụng nhấn một nút chuột bất kỳ trong khi con trỏ chuột
đang nằm trên một đối tượng MouseMove Người sử dụng di chuyển con trỏ chuột ngang qua một đối tượng
MouseUp Người sử dụng thả nút chuột trong khi con trỏ chuột đang nằm trên
một đối tượng
1.1.5 Mối quan hệ giữa phương thức, thuộc tính và sự kiện
Mặc dù thuộc tính, phương thức và sự kiện có vai trò khác nhau nhưng chúng thường xuyên liên hệ với nhau ví dụ nếu ta di chuyển một điều khiển bằng phương thức Move ( thường đáp ứng một số sự kiện) một số thuộc tính như Top, Height, Left, Width sẽ thay đổi theo Bởi vì khi kích
cỡ của điều khiển thay đổi, sự kiện Resize sẽ sảy ra
Phụ thuộc lẫn nhau còn có nghĩa là ta có thể đạt được mjục đích công việc bằng nhiều cách: xử lýu trên thuộc tính hoặc phương thức Ví dụ, ta có 2 cách để di chuyển nút lệnh:
a thuộc tính
cmdMove.Left=100
cmdMove.Top=100
b phương thức
cmdMove.Move 100,100
Một ví dụ khác, làm một biểu mẫu xuất hiện và biến mất trên màn hình
c thuộc tính
Trang 4‘xuất hiện
frmMyForm.Visible =True
‘Biến mất
frmMyForm.Visible =False
d phương thức
‘xuất hiện
frmMyForm.Show
‘Biến mất
frmMyForm.Hide
1.1.6 Cửa sổ Properties
cửa sổ này cho phép lập trình viên xem xét và sửa đổi các thuộc tính của biểu mẫu và các điều khiển trong lúc thiết kế
Phần trên cửa sổ là các danh sách đối tượng, đối tượng được chọn trong danh sách này có các thuộc tính của nó hiển thị trong phần bên dưới của cửa sổ
Thuộc tính Caption được đánh dấu, nghĩa là ta có thể sửa đổi thuộc tính này
từng thuộc tính có một hía trị mặc định ta có thêr sửa đổi bằng tay trong lúc thiết kế, hoặc bằng chương trình trong lúc thi hành
một biểu mẫu có khoảng 40 thuộc tính được hiển thị trong lúc thiết kế, nhưng ta có thể truy cập một số thuộc tính khác vào trong lúc thi hành
Ta có thẻ xem toàn bộ thuộc tính xứp xếp theo thứ tự bảng chữ cái bằng cách chọn vào tab Alphabetic, hoặc xem theo từng nhóm bằng cách chọn vào tab Categozized
ta có thể mở cửa sổ Properties bằng nhiều cách:
a nhấn chuộtvào biểu mẫu để chpnj nó như một đối tượng hiện hành, nhấn phím F4 để hiển thị cửa sổ Properties
b Hoặc là từ menu_View, chọn Properties
c hoặc là nhấn nút phải chuột lên biểu mẫu, ta sẽ thấy một menu hiển thị chọn Properties
Trang 51.1.7 Viết chương trình sử dụng thuộc tính, phương thức và sự kiện
Ta thử viết chương trình Movelt dùng để di chuyển cửa sổ Movelt có một cửa sổ tên là frmMove, chứa 4 nút lệnh ở 4 góc màn hình khi thi hnàh nhấn vào moọt trong các nút này sẽ làm cửa sổ di chuyển tới góc màn hình tương ứng giữa màn hình sẽ là một nhãn hiệu sẽ thông báo tức thời các di chuyển của chuột cũng như nút lệnh nào được Focus
các bước tổng quát dể tạo Movelt:
a Tạo giao diện người sử dụng (GUI)
b Viết thủ tục Form_Load()
c Viết thủ tục click()
d thêm các thông báo sự kiện
1.1.7.1Tạo GUI
1 từ menu File, chọn New Project để mở hộp thoại đề án Chọn kiểu standard EXE
2 vào cửa sổ Properties, sửa tên biểu mẫu thành frmMove
3 thêm 4 nút lệnh vào 4 góc biểu mẫu ta sẽ xửa lại vị trí chính xác hiưn cho đíng bằng chương trình
4 nhấn đúp chuột lên biể mẫu để tạo thủ tục Form_Load()
5 Đổi thuộc tính BorderStyle của biểu mẫu thành 1- Fixed Single để cấm biểu mẫu
co giãn khi chương trình thi hành sau đó đổi các thuộc tính Alignment của nhãn thành 2- Center và BorderStyle của nhãn thành 1- Fixed Single
6 Lưu biểu mẫu với tên là frmmove và lưu đề án với tên là Movelt.vbp
1.1.7.2Viết thủ tục Form _Load
Thủ tục này chuẩn bị một số khởi tạo cho biểu mẫu trước khi nó được hiển thị
a Đặt thuộc tính Caption cho CommandButtion
b Dặt chuỗi ký tự khởi tạo cho nhãn
c Đặt chuỗi ký tự cho thanh tiêu đề của biểu mẫu
d Đặt vị trí cho 4 nút lệnh nhãn và biểu mẫu trên màn hình
e Đưa vào đoạn chương trình sau:
Trang 6Private Sub Form_Load()
'Set the Caption property of the CommandButtons
cmdTopLeft.Caption = "Top Left"
cmdTopRight.Caption = "Top Right"
cmdBottomLeft.Caption = "Bottom Left"
cmdBottomRight.Caption = "Bottom Right"
'Clear the initial text of the label
lblNotify.Caption = ""
'Set the form's title bar text
frmMove.Caption = "MoveIt"
'The rest of the code centers the form on the
'screen, sets the position of the four
'CommandButtons, and sets the size and
'position of the label
'Center the form on the screen This works by
'setting the Left side of the form to the center
'of the screen, less half the width of the form
'Also, the Top of the form is set to the center
'of the screen, less half the height of the form
frmMove.Left = (Screen.Width - frmMove.Width) / 2
frmMove.Top = (Screen.Height - frmMove.Height) / 2
'Set the Left edge of the buttons The 200 setting
'for the left buttons sets a space between the edge
'of the form and the buttons The right buttons are
'set by subtracting the width of the button from
'the width of the form, and subtracting 300 to
'set a space between the button and the form edge
cmdTopLeft.Left = 200
cmdBottomLeft.Left = 200
cmdTopRight.Left = frmMove.Width - cmdTopRight.Width - 300
cmdBottomRight.Left = frmMove.Width - cmdBottomRight.Width - 300
'Set the Top edge of the buttons This is done
'similar to setting the Left edge
cmdTopLeft.Top = 200
cmdBottomLeft.Top = frmMove.Height - cmdBottomLeft.Height - 500 cmdTopRight.Top = 200
cmdBottomRight.Top = frmMove.Height - cmdBottomRight.Height - 500
'Set the size of the label
lblNotify.Height = 360
lblNotify.Width = 3000
Trang 7
'Center the label within the form This is done
'similar to centering the form
lblNotify.Left = (frmMove.Width - lblNotify.Width) / 2
lblNotify.Top = (frmMove.Height - lblNotify.Height) / 2 - 200
End Sub
1.1.7.3Viết thủ tục Click
Dùng thủ tục này để di chuyển biểu mẫu xung quanh màn hình Nhấn đúp chuột lên nút lệnh để
mở cửa sổ Code Đưa vào đoạn chương trình sau đay:
Private Sub cmdBottomLeft_Click()
'Set the value of the form's TOP property
'to the bottom of the screen but bring
'it up the height of the screen so that the
'bottom of the form is on the bottom of
'the screen
frmMove.Top = Screen.Height - frmMove.Height
'Set the value of the form's LEFT property
'to the left most of the screen
frmMove.Left = 0
End Sub
Private Sub cmdBottomRight_Click()
'Set the value for the form's TOP property to
'the bottom of the screen, but bring the TOP
'up the HEIGHT of the form so that the bottom
'of the form is on the bottom of the screen
frmMove.Top = Screen.Height - frmMove.Height
'Set the value of the form's LEFT property to
'the right of the screen but bring it across
'the screen, the width of the form so that the
'right side of the form is on the right
'side of the screen
frmMove.Left = Screen.Width - frmMove.Width
End Sub
Trang 8Private Sub cmdTopLeft_Click()
'Set the value of the form's TOP property
'to the top of the screen
frmMove.Top = 0
'Set the value of the form's LEFT property
'to the left of the screen
frmMove.Left = 0
End Sub
Private Sub cmdTopRight_Click()
'Set the value of the form's TOP property
'to the top of the screen
frmMove.Top = 0
'Set the value of the form's LEFT property to
'the right of the screen but bring it back across
'the screen the width of the form, so that the
'right side of the form is on the right
'side of the screen
frmMove.Left = Screen.Width - frmMove.Width
End Sub
Đối tượng Screen sử trong đoạn chương trình trên là màn hình
Việc di chuyển biểu mẫu lên trên hoặc sang trái chỉ cần đổi thuộc tính Top hay Left thành 0 Giá trị này luôn đúngcho cạnh trên hay cạnh trái màn hình
Cạnh phải hoặc cạnh dưới phức tạp hơn vì không có thuộc tính Right hay Bottom Để canh phải biểu mẫu ta phải thay đổi thuộc tinh Left thông qua thuộc tính Width
Tương tự với cạnh dưới ta phải thay đổi thuộc tinh Top thông qua thuộc tính Height
1.1.7.4Thêm thông báo sự kiện
Khi người sử dụng nhấn hoặc thả nút chuụot trên biểu mẫu chuỗi ký tự trong nhãn lblNotify sẽ thay đổi Ngoài ra khi người sử dụng nhấn phím Tab hoặc chuột để di chuyển từ nút lện này sang nút lệnh khác, chuỗi ký tự của nhãn cũng thay đổi như vậy ta phải chương trình cho 3 thủ tục khác nhau MouseUp, mouseDown cho biểu mẫu và GostFocus cho từng nút lệnh
Mở cửa sổ Code, chọn sự kiện MouseDown để mở thủ tục và đưa vào đoạn chương trình sau Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblNotify.Caption = "MouseDown Event"
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Trang 9lblNotify.Caption = "MouseUp Event"
End Sub
Private Sub cmdBottomLeft_GotFocus()
lblNotify.Caption = "cmdBottomLeft has the Focus"
End Sub
Private Sub cmdBottomRight_GotFocus()
lblNotify.Caption = "cmdBottomRight has the Focus"
End Sub
Private Sub cmdTopLeft_GotFocus()
lblNotify.Caption = "cmdTopLeft has the Focus"
End Sub
Private Sub cmdTopRight_GotFocus()
lblNotify.Caption = "cmdTopRight has the Focus"
End Sub
1.2 Làm việc với một đề án
1.2.1 Định nghĩa
Một đề án gồm có :
a 1 tệp tin đề án (.vbp) theo dõi toàn bộ các thành phần
b 1 tệp tin cho biểu mẫu (.frm)
c 1 tệp tin nhị phân (.frx) cho từng biểu mẫu Người sử dụng không được sửa đổi Các tập tin này được phát sinh tự động cho mỗi tập tin frm bất kỳ và dùng để chứa các thuộc tính nhị phân như Picture hay Icon
d 1 tệp tin cho từng module lớp (.cls)- tuỳ chọn
e 1 tệp tin cho từng module chuẩn (.bas)- tuỳ chọn
f 1 hoặc nhiều tệp tin chứa các điều khiển Activex (.ocx)- tuỳ chọn
g 1 tệp tin tài nguyên (.res)- tuỳ chọn
1.2.2 Cửa sổ Project Explorer
Cửa sổ này thường được hiển thị bên góc phải trên màn hình Visual Basic Project Explorer giúp ta tổ chức các tệp tin trong đề án và truy cập chúng dưới dạng thiết kế biểu mẫu hoặc chương trình
Trang 10Để làm việc với cửa sổ này ta dùng menu nhạy với ngữ cảnh menu này xuất hiện khi ta nhấn nút phải chuột vào một tệp tin trong cửa sổ Khi đó, ta có thể:
a xem một tệp tin dưới dạng thiết kế biểu mẫu hoặc chương trình
b xem thuộc tính của tệp tin
c Thêm một biểu mẫu hoặc module vào đề án
d Lưu tệp tin hiện hành
e Xoá một tệp tin khỏi đề án
f in tệp tin
g ghi hoặc thả cho cửa sổ Project Explorer di động trong màn hình Visual Basic
h che cửa sổ Project Explorer
1.2.3 Tạo đề án
mỗi lần khởi động Visual Basic, ta sẽ thấy hộp thoại New Project Từ đây, ta có thể chọn loại
đề án mà ta muốn tạo và ấn Open
Khi Visual Basic đã có sẵn, ta có thể tạo đề án bằng cách: từ menu File chọn New Project Hộp thoại New Project xuất hiện, ta chọn loại đề án cần thiết và nhấn OK
1.2.4 Đổi thuộc tính đề án
Một số thông tin liên quan đề án như tên đề án, số phiên bản, chuỗi ký tự dùng hiển thị trên thanh tiêu đề khi ứng dụng hoàn thành Ta có thể xem các thông tin khác trong hộp thoai Project Properties
1.2.4.1Hộp thoại Project Properties
1 trong cửa sổ Project Explorer, nhấn nút phải chuột lên tệp tin đề án
2 trong menu ngữ cảnh, Chọn Project Name Properties Hộp thoại Project Properties xuất hiện
3 Hoặc là từ menu Properties, chọn Project Name Properties