Trường Đại học Xây dựng
Khoa Công nghệ Thông tin
Tài liệu hướng dẫn Thực tập tốt nghiệp
(ngành Tin học Xây dựng)
(ver 0.3 – 11/2/2006)
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
2
CÁC NỘI DUNG TRÌNH BÀY
CHƯƠNG I. Công cụ lập trình 8
I.1. Làm quen với giao diện Visual Basic 8
I.2. Ngôn ngữ Visual Basic 27
I.3. Kỹ năng gỡ rối chương trình (debug) 51
I.4. Sử dụng ActiveX trong Visual Basic 54
I.5. Kết nối cơ sở dữ liệu với ADO 61
I.6. Các hàm API cơ bản 68
CHƯƠNG II. Thiết kế phần mềm 73
II.1. Khái quát về UML 73
II.2. Rational Rose 77
II.3. Use case diagram 78
II.4. Biểu đồ tương tác (Interaction diagram) 81
II.5. Class diagram 83
II.6. Biểu đồ thành phần (Component diagram) 87
II.7. Ví dụ áp dụng 88
CHƯƠNG III. Đồ họa 106
III.1. Mục đích 106
III.2. Các chức năng chính của 1 hệ đồ họa 106
III.3. Sử dụng VDraw Component 106
CHƯƠNG IV. Trợ giúp và đóng gói 115
IV.1. Lập trợ giúp với RoboHelp 115
IV.2. Đóng gói với InstallSheld 115
IV.3. Tạo film demo với WinCam 115
Tài liệu tham khảo 116
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
3
MỤC LỤC
CHƯƠNG I. Công cụ lập trình 8
I.1. Làm quen với giao diện Visual Basic 8
I.1.1. Cài đặt 9
I.1.2. Giao diện (IDE) 10
I.1.2.1. Menu Bar 11
I.1.2.2. Toolbars (Debug, Edit, form Editor, Standard) 11
I.1.2.3. Toolbox 12
I.1.2.4. Project Explorer 12
I.1.2.5. Properties window 13
I.1.2.6. Form Layout 13
I.1.2.7. Form Designer 13
I.1.2.8. Immediate Window 14
I.1.2.9. View Code button 14
I.1.2.10. View form button 14
I.1.3. Chương trình đầu tiên “Hello World” 14
I.1.3.1. Sắp đặt các vật dụng lên Form 15
I.1.3.2. Viết code 16
I.1.3.3. Chạy chương trình 16
I.1.4. Form & Controls 17
I.1.4.1. Sắp đặt controls lên Form 17
I.1.4.2. Resize và di chuyển control 18
I.1.4.3. Alignment Grid 18
I.1.4.4. Control Locking 19
I.1.5. Thuộc tính & Sự kiện 20
I.1.5.1. Thuộc tính 20
I.1.5.2. Sự kiện 20
I.1.6. Các control thông dụng 21
I.1.6.1. TextBox 21
I.1.6.2. CommandButton 22
I.1.6.3. Label 22
I.1.6.4. CheckBox 23
I.1.6.5. OptionButton 23
I.1.6.6. ComboBox 24
I.1.7. Menu 25
I.2. Ngôn ngữ Visual Basic 27
I.2.1. Kiểu, biến & biểu thức 27
I.2.1.1. Biến 27
I.2.1.2. Kiểu biến 27
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
4
I.2.1.3. Toán tử 31
I.2.1.4. Biểu thức 32
I.2.1.5. Phép gán 32
I.2.1.6. Toán tử điều kiện 32
I.2.1.7. Toán tử logic 33
I.2.2. Các cấu trúc điều khiển 33
I.2.2.1. Cấu trúc If Then End If 33
I.2.2.2. Cấu trúc If Then Else End If 33
I.2.2.3. Select Case 34
I.2.2.4. Vòng lặp Do While Loop 34
I.2.2.5. Vòng lặp Do Loop While 34
I.2.2.6. Vòng lặp For Next 35
I.2.2.7. Vòng lặp For Each Next 35
I.2.3. Chương trình con 36
I.2.3.1. Sub 36
I.2.3.2. Function 36
I.2.3.3. Tham biến & tham trị 36
I.2.4. Form 37
I.2.4.1. Các thuộc tính của Form 38
I.2.4.2. Các sự kiện của Form 38
I.2.4.3. MDI Form 39
I.2.5. Module 40
I.2.6. Cách thức tổ chức dữ liệu trong VB project 40
I.2.7. Class module 40
I.2.7.1. Khái niệm Object & Class 40
I.2.7.2. Lập trình OOP trong VB 41
I.2.7.3. Ví dụ - Xây dựng lớp clsBox 42
I.2.8. Làm việc với file 48
I.2.8.1. Mở file 48
I.2.8.2. Đọc file 49
I.2.8.3. Ghi file 49
I.2.8.4. Một số kỹ thuật sử dụng để đọc file text 50
I.3. Kỹ năng gỡ rối chương trình (debug) 51
I.3.1. Sử dụng MsgBox 52
I.3.2. Sử dụng cửa sổ Watch 52
I.3.3. Đặt điểm dừng & chạy từng dòng lệnh 54
I.4. Sử dụng ActiveX trong Visual Basic 54
I.4.1. Các ActiveX thông dụng 54
I.4.1.1. CommonDialog 54
I.4.1.2. VSFlexGrid 55
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
5
I.4.1.3. MenuXP 57
I.4.1.4. MaXC 59
I.4.1.5. VDraw 60
I.4.2. Đăng ký & tìm hiểu ActiveX 60
I.4.2.1. Đăng ký ActiveX 60
I.4.2.2. Tìm hiểu cách sử dụng ActiveX bằng VB 60
I.5. Kết nối cơ sở dữ liệu với ADO 61
I.5.1. Thiết lập Connection String 62
I.5.2. Thiết lập RecordSource 64
I.5.3. Bind control với ADO Data 65
I.5.4. Làm việc với Database bằng code 66
I.6. Các hàm API cơ bản 68
I.6.1. Khai báo API 69
I.6.2. Các hàm API trên DC (Device Context) 70
CHƯƠNG II. Thiết kế phần mềm 73
II.1. Khái quát về UML 73
II.1.1. Giới thiệu UML 73
II.1.2. Các khái niệm của UML 73
II.1.2.1. Phần tử mô hình 73
II.1.2.2. Quan hệ 74
II.1.2.3. Biểu đồ 74
II.1.3. Kiến trúc hệ thống 75
II.1.3.1. Khung nhìn UC (Use case view) 76
II.1.3.2. Khung nhìn thiết kế (Design view) 76
II.1.3.3. Khung nhìn cài đặt (Implementation view) 76
II.1.3.4. Khung nhìn triển khai (Deployment view) 77
II.1.3.5. Khung nhìn tiến trình (Process view) 77
II.2. Rational Rose 77
II.2.1. Rational Rose là gì 77
II.2.2. Giao diện của Rational Rose 78
II.3. Use case diagram 78
II.3.1. Phân tích UC 78
II.3.1.1. UC là gì? 78
II.3.1.2. Tìm kiếm Actor 79
II.3.1.3. Tìm kiếm UC 79
II.3.2. UC Diagram 79
II.3.2.1. Tài liệu mô tả UC 80
II.3.3. Tổng kết 80
II.4. Biểu đồ tương tác (Interaction diagram) 81
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
6
II.4.1. Đối tượng là gì? 81
II.4.2. Tìm đối tượng 81
II.4.3. Biểu đồ trình tự (Sequence Diagram) 82
II.4.4. Biểu đồ cộng tác (Collaboration Diagram) 82
II.5. Class diagram 83
II.5.1. Class là gì? 83
II.5.2. Tìm kiếm class 83
II.5.3. Phân loại class (stereotype) 84
II.5.4. Class Diagram 84
II.5.4.1. Quan hệ giữa các class (relationship) 84
II.5.4.2. Tính nhiều (multiplicity) của quan hệ 86
II.5.5. Cập nhật sequence diagram 87
II.6. Biểu đồ thành phần (Component diagram) 87
II.6.1. Tổng kết 87
II.7. Ví dụ áp dụng 88
II.7.1. Mô tả bài toán 88
II.7.2. Biểu đồ UseCase 89
II.7.2.1. Tìm kiếm Actor 89
II.7.2.2. Tìm UseCase 89
II.7.2.3. Biểu đồ UseCase 90
II.7.2.4. Mô tả UseCase 90
II.7.3. Biểu đồ tương tác 95
II.7.3.1. Tìm đối tượng 95
II.7.3.2. Biểu đồ tuần tự (sequence diagram) 96
II.7.4. Biểu đồ lớp 103
II.7.4.1. Tìm kiếm lớp 103
II.7.4.2. Biểu đồ lớp 104
II.7.5. Cập nhật biểu đồ tương tác 104
CHƯƠNG III. Đồ họa 106
III.1. Mục đích 106
III.2. Các chức năng chính của 1 hệ đồ họa 106
III.3. Sử dụng VDraw Component 106
III.3.1. Cài đăt VDraw 106
III.3.2. Kiến trúc VDraw 107
III.3.3. Vẽ đối tượng 108
III.3.4. Thay đổi vùng nhìn, điểm nhìn 109
III.3.5. Lựa chọn đối tượng 110
III.3.6. Người dùng chọn đối tượng 111
III.3.7. Đọc và lưu bản vẽ 113
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
7
III.3.8. Một số mẹo vặt với VDraw 114
CHƯƠNG IV. Trợ giúp và đóng gói 115
IV.1. Lập trợ giúp với RoboHelp 115
IV.2. Đóng gói với InstallSheld 115
IV.3. Tạo film demo với WinCam 115
Tài liệu tham khảo 116
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
8
CHƯƠNG I. Công cụ lập trình
Phần này xin giới thiệu về công cụ lập trình Visual Basic (VB), đây là môi trường phát triển
thường được các sinh viên chuyên ngành Tin h ọc Xây d ựng sử dụng trong các đồ án t ốt
nghiệp. Sau khi đọc phần này, bạn có thể:
- Có được những kiến thức cơ bản về ngôn ngữ cũng như môi trường phát triển VB
- Sử dụng các hàm API trong Visual Basic
- Tận dụng các ActiveX để bổ sung chức năng cho ứng dụng
- Kết nối cơ sở dữ liệu trong Visual Basic
Chú ý:
- Tài liệu được xây dựng với định hướng: người đọc đã có những kiến thức cơ bản về
lập trình (nắm được một ngôn ngữ cụ thể).
- Khoảng 65% nội dung của phần VB được sử dụng từ [1], chúng tôi chỉ lược bớt, thay
đổi thứ tự hoặc chút ít nội dung cho phù hợp hơn.
I.1. Làm quen với giao diện Visual Basic
Dùng VB6 là cách nhanh và t ốt nhất để lập trình cho Microsoft Windows. VB6 cung c ấp
cho bạn một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập trình ứng dụng cho
MSWindows.
Visual Basic là gì?
- Phần "Visual" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người
dùng (Graphical User Interface hay viết tắc là GUI). Có sẵn những bộ phận hình ảnh,
gọi là controls, bạn có thể sắp đặt vị trí và xác l ập các đặc tính của chúng trên một
khung màn hình, gọi là form. Nếu bạn đã từng sử dụng chương trình vẽ chẳng hạn
như Paint, bạn đã có sẵn các kỹ năng cần thiết để tạo một GUI cho VB6.
- Phần "Basic" đề c ập đến ngôn ng ữ BASIC (Beginners All-Purpose Symbolic
Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, dễ dùng.
Visual Basic b ắt nguồn từ MSBasic, do Bill Gates vi ết từ thời dùng cho máy tính 8 bits
8080. Khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thành bất kỳ
điều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác.
Người mang l ại phần "Visual" cho VB là Alan Cooper, ông đã gói môi tr ường hoạt động
của Basic trong m ột phạm vi d ễ hiểu, dễ dùng, không c ần phải chú ý đến sự tinh x ảo của
MSWindows, nhưng vẫn dùng các chức năng của MSWindows một cách hiệu quả.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
9
Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA) và VBScript. VBA
là ngôn ngữ nằm phía sau các ch ương trình Word, Excel, MSAccess, MSProject, .v.v còn
gọi là Macros. Dùng VBA trong MSOffice, AutoCAD , ta có th ể làm tăng chức năng bằng
cách tự động hóa các chương trình.
Dù cho mục đích của bạn là tạo một tiện ích nhỏ cho riêng b ạn, trong một nhóm làm vi ệc
của bạn, trong m ột công ty l ớn, hay c ần phân b ố chương trình ứng dụng rộng rãi trên th ế
giới qua Internet, VB6 cũng sẽ có các công cụ lập trình mà bạn cần thiết.
I.1.1. Cài đặt
Để cài đặt VB6, máy tính c ủa bạn cần phải có một ổ đĩa CD-ROM (CD drive) . B ạn cần ít
nhất 32 MB RAM, 2 GB hard disk và CPU Pentium II. Khi bỏ VB6 CD vào CD drive, nó sẽ
tự kh ởi động để hiển thị menu cho b ạn ch ọn những thứ gì c ần cài đặt, hãy click Install
Visual Basic 6.0 để cài VB6. Ngo ại trừ các file hệ điều hành (Operating System) trong th ư
mục (folder) \Os, các file trong đĩa compact đều không bị nén. Vì th ế, bạn có thể sử dụng
chúng trực tiếp từ đĩa. Ví dụ, có nhiều công cụ và thành phần trong folder \Tools vốn có thể
được cài đặt trực tiếp từ CD-ROM.
Ngoài ra, bạn có thể chạy Setup khi nào cần thiết. Ví dụ, bạn có thể chạy Setup để cài đặt lại
Visual Basic trong folder khác, hoặc để cài đặt thêm bớt các phần của VB6.
Nếu vì lý do gì hệ thống không install các đĩa compact MSDN (bạn sẽ khám phá ra điều này
khi thấy Help không có m ặt lúc chạy VB6), bạn có thể cài đặt chúng trực tiếp từ đĩa số 1
của bộ MSDN.
Để bổ sung và xóa các thành phần VB:
- Bỏ đĩa CD vào ổ đĩa
- Nếu menu không t ự động hiện lên thì ch ạy chương trình Setup có s ẵn trong folder
gốc trên đĩa CD
- Chọn nút Custom trong hộp thoại Microsoft Visual Basic 6.0 Setup
- Chọn hay xóa các thành ph ần b ằng cách check hay uncheck các h ộp danh sách
Options của dialog Custom
- Thực hiện các chỉ dẫn Setup trên màn hình
Ghi chú: Trong lúc cài VB6, nh ớ chọn Graphics n ếu không b ạn sẽ thiếu một số hình ảnh
như icons, bitmaps v.v Đáng lẽ Microsoft cho t ự động cài đặt Graphics, t ức là Default
(không có nói gì) thì cài đặt Graphics.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
10
I.1.2. Giao diện (IDE)
Khi khởi động VB6 bạn sẽ thấy mở ra hộp thoại New Project. Ở đây VB6 cho bạn chọn một
trong nhiều loại chương trình, hãy ch ọn Standard EXE ( để tạo chương trình là file EXE,
chạy độc lập)
Sau khi l ựa chọn loại chương trình, giao di ện của môi tr ường phát tri ển (IDE - Integrated
Development Environment) của VB hiện ra
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
11
IDE là môi tr ường cho phép b ạn lập trình, thiết kế giao diện, gỡ rối Các thành ph ần của
IDE gồm Menu bar, Toolbar, Toolbox, Project Explorer, Properties Windows
I.1.2.1. Menu Bar
Giống như tất cả các phần mềm khác, menu bar của VB chứa tất cả các chức năng (được bố
trí một cách hệ thống) mà bạn sử dụng để làm việc với VB6, kể cả các menu để truy cập các
chức năng đặc biệt dành cho việc lập trình chẳng hạn như Project, Format, hoặc Debug
I.1.2.2. Toolbars (Debug, Edit, form Editor, Standard)
Các toolbars có hình các icons cho phép b ạn click để thực hiện công việc tương đương với
dùng một menu, nhưng nhanh và tiện hơn. Bạn dùng menu View | Toolbars để làm cho các
toolbars hiện ra hay bi ến mất đi. Bạn có thể thay đổi vị trí một toolbar bằng cách nắm vào
hai gạch dọc nằm bên trái toolbar rồi dời toolbar đi chỗ khác (nắm ở đây nghĩa là để con trỏ
chuột lên chỗ hai gạch dọc rồi bấm xuống và giữ nút bên trái c ủa chuột, trong khi kéo con
trỏ chuột đi nơi khác).
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
12
I.1.2.3. Toolbox
Đây là hộp đồ nghề với các công c ụ, gọi là controls, mà b ạn có th ể đặt lên các
form trong lúc thiết kế (design). Nếu Toolbox biến mất, bạn có thể display nó trở
lại bằng cách dùng menu command View | Toolbox. Bạn có th ể khiến toolbox
hiển thị nhiều controls hơn bằng cách chọn Components từ popup menu (chọn
Toolbox r ồi b ấm nút ph ải c ủa mouse để hi ện popup menu) hay dùng menu
Project | Components. Ngoài việc trình bày Toolbox m ặc định, bạn có thể tạo
cách trình bày khác b ằng cách ch ọn Add Tab t ừ popup menu và b ổ sung các
control cho tab từ kết quả.
I.1.2.4. Project Explorer
Sử dụng để liệt kê các form và các module
trong project (d ự án) hi ện hành c ủa b ạn.
Trên Pascal, bạn chỉ làm việc với từng file
riêng lẻ, còn trong VB, m ỗi khi vi ết một
chương trình là b ạn làm vi ệc v ới m ột
project. Project là sự tập hợp các files mà
bạn s ử d ụng để t ạo m ột trình ứng d ụng.
Chia ứng dụng thành nhiều module nh ỏ
cho phép bạn lập trình hiệu quả hơn.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
13
I.1.2.5. Properties window
Liệt kê các đặc tính c ủa các form ho ặc control
được chọn. Một property là m ột đặc tính c ủa một
object chẳng hạn như size, caption, hoặc color. Khi
bạn sửa đổi một property bạn sẽ thấy hiệu quả ngay
lập tức, thí dụ thay đổi property Font của một Label
sẽ thấy Label ấy được hiển thị bằng Font chữ mới.
Khi b ạn ch ọn m ột Property c ủa control hay form
trong Properties window, phía bên ph ải ở chỗ value
của property có th ể display ba ch ấm ( ) m ũi tên
hướng xuống dưới. Bấm vào đó để hiển hộp thoại
để thiết lập các thông số cho property này.
I.1.2.6. Form Layout
Bạn dùng Form Layout để chỉnh vị trí của các forms
khi form hiện ra lần đầu lúc chương trình chạy. Click
phải chuột trên cửa sổ, chọn Resolution Guides trên
popup menu để thấy nếu dùng m ột màn ảnh với độ
mịn (resolution) tệ hơn, thí dụ như 640 X 480, thì nó
sẽ nhỏ như thế nào
I.1.2.7. Form Designer
Dùng để thiết kế giao diện lập trình. Bạn
có thể bổ sung các controls, các đồ họa
(graphics), các hình ảnh và m ột form.
Mỗi form trong trình ứng dụng của bạn
có designer form riêng của nó.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
14
I.1.2.8. Immediate Window
Dùng để gỡ rối (debug) trình ứng dụng
của b ạn. B ạn có th ể hi ển th ị d ữ ki ện
trong khi ch ạy ch ương trình ứng d ụng.
Khi chương trình đang tạm ngừng ở một
break point, b ạn có th ể thay đổi giá tr ị
các biến (variables) hay ch ạy một dòng
chương trình. Phím tắt để bật / tắt cửa sổ
Immediate là tổ hợp Ctrl+G
I.1.2.9. View Code button
Click lên nút này trên Project Explorer
để xem code c ủa m ột form mà b ạn đã
chọn. Cửa sổ code giống như hình bên.
I.1.2.10. View form button
Click lên nút này để xem form designer của một form mà bạn đã chọn.
Ghi chú: Nhiều cửa trong IDE như Toolbars, Toolbox, Project Explorer .v.v có th ể ở trạng
thái trôi (floating) hay dính (docked). B ạn có thể thay đổi vị trí chúng b ằng cách nắm vào
Title Bar của cửa sổ rồi dời đi. Dĩ nhiên bạn cũng có thể mở rộng hay làm nhỏ một cửa bằng
cách dời một cạnh dọc hay ngang c ủa nó. Khi để một cửa sổ này lên trên m ột cửa sổ khác
chúng có thể tìm cách dính nhau.
I.1.3. Chương trình đầu tiên “Hello World”
Một chương trình Visual Basic g ồm có phần mã lập trình và các hình ảnh (visual). Bạn có
thể thiết kế phần hình ảnh bằng cách dùng những đồ nghề (Controls hay Objects) từ Túi đồ
nghề (Toolbox) n ằm bên trái. N ếu bạn không th ấy cái Túi đồ ngh ề thì dùng m ệnh lệnh
Menu View | Toolbox để bắt nó hiện ra.
Khi bạn bắt đầu thiết kế một chương trình bằng cách chọn Standard EXE, môi trường triển
khai lập trình (IDE) cho b ạn sẵn một Form tên là Form1. B ạn hãy s ửa đề tựa (Title) c ủa
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
15
form ra cái gì có ý ngh ĩa hơn b ằng cách đổi thuộc tính Caption của form trong c ửa sổ
Propeties (trong hình dưới đây ta sửa thuộc tính Caption của form thành ra "Chuong trinh
dau tien").
I.1.3.1. Sắp đặt các vật dụng lên Form
Muốn đặt một Control lên Form, click hình cái Control trong Toolbox r ồi Drag (b ấm nút
trái của con chu ột rồi kéo cho thành hình ch ữ nhật trước khi buông nút trái ra) con chu ột
trên Form vẽ thành cỡ của Control. Những Controls bạn sẽ dùng thường nhất từ Toolbox là
Label (nhãn), Textbox (hộp để đánh chữ vào) và CommandButton (nút bấm mệnh lệnh).
Trong hình trên ta có 1 Label, 1 Textbox và 1 CommandButton. Mu ốn sửa chữ Label1 ra
"Loi chao" thì s ửa thuộc tính Caption. Còn Textbox không dùng thu ộc tính Caption mà
dùng thuộc tính Text. Ta cũng có thể thay đổi các thuộc tính Caption và Text trong khi chạy
chương trình (at run-time). Trong lúc thi ết kế (design time) bạn có thể sửa đổi kiểu chữ của
những Controls bằng cách đổi thuộc tính Font của chúng trong cửa sổ Properties (click bên
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
16
phải của thuộc tính Font trong Properties Window, IDE s ẽ hiển thị hộp thoại Font để bạn
lựa chọn những đặc tính của Font như trong hình dưới đây).
Nếu bạn thấy bực mình tại sao chữ mặc định (default size) của các Control hơi nhỏ, bạn có
thể giải quyết bằng cách s ửa cỡ chữ của chính Form cho nó l ớn hơn. Vì khi m ột Control
được đặt lên một Form, nó thừa kế cỡ chữ của Form.
I.1.3.2. Viết code
Nháy đúp vào Button, VB bật lên cửa sổ Code cùng với một thủ tục Command1_Click mà
nội dung chưa có gì, bạn hãy bổ sung nội dung để có thủ tục Command1_Click như sau
Private Sub Command1_Click()
MsgBox "Xin chao " & Text1.Text
End Sub
Trong đoạn ch ương trình trên, Command1 là tên c ủa Command button trên form.
Command1_Click là hàm được gọi khi ng ười dùng nh ấn nút. Đoạn lệnh MsgBox th ực
chất là l ời gọi hàm. Hàm MsgBox hi ển thị một hộp thoại với nội dung trên h ộp thoại là
tham số đầu tiên của hàm. Text1 là tên của hộp nhập liệu TextBox trên form, Text1.Text là
nộp dung c ủa hộp nhập liệu. Trong đoạn chương trình này, chúng ta s ẽ hiển thị một hộp
thoại với lời nhắc trong hộp thoại là Xin chao + nội dung của hộp nhập liệu Text1.
I.1.3.3. Chạy chương trình
Để chạy chương trình vừa lập được, bạn nhấn F5 hoặc biểu tượng Run trên Toolbar. Sau
khi chạy, một hộp thoại giống với form mà chúng ta v ừa vẽ sẽ hiện ra. Click chu ột vào
TextBox để ghi tên c ủa bạn vào, ví d ụ: sửa nội dung TextBox thành “Tin hoc Xay dung”.
Nhấn vào nút Command1, chương trình sẽ hiển thị một hộp thoại khác với lời nhắc trên hộp
thoại giống như hình sau
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
17
Hộp thoại MsgBox được sử dụng rất nhiều trong VB để hiển thị các thông báo, và th ường
được dùng để hiển thị giá tr ị của các bi ến trong quá trình ch ạy chương trình. Khi ch ương
trình của bạn chạy lỗi mà không phát hiện ra, MsgBox là một công cụ hữu hiệu để bạn theo
dõi sự thay đổi của các biến trong quá trình chạy chương trình. MsgBox là công cụ đơn giản
nhất để bạn thực hiện một quá trình g ọi là Debug (g ỡ lỗi chương trình), đây là k ỹ thu ật
không thể thiếu đối với các lập trình viên, trong các phần sau chúng ta sẽ đi vào nghiên cứu
chi tiết về kỹ thuật này.
I.1.4. Form & Controls
Hầu hết các chương trình VB6 đều có ít nhất một Form. Khi ta chạy chương trình, Form này
sẽ hiện ra trước hết để ta ra l ệnh nó làm chuy ện gì. Form tr ống không làm được gì nhiều,
nên ta đặt lên Form nh ững controls nh ư Textbox (h ộp nh ập li ệu để gõ ch ữ vào), Label
(nhãn), CommandButton (nút l ệnh), .v.v Các controls cho phép ng ười dùng nh ập các d ữ
kiện để chương trình x ử lý, và các controls c ũng hiển thị kết quả và th ực hiện cách mệnh
lệnh của người dùng.
I.1.4.1. Sắp đặt controls lên Form
Ta hãy bắt đầu thiết kế một chương trình mới (New Project) bằng cách chọn Standard EXE,
môi trường triển khai l ập trình (IDE) cho b ạn sẵn một Form tên là Form1. Mu ốn đặt một
Control lên Form, click hình Control tương ứng trong Toolbox rồi Drag (bấm nút trái của
con chuột rồi kéo cho thành hình chữ nhật trước khi buông nút trái ra) con chu ột trên Form
vẽ thành c ỡ c ủa Control. M ột cách khác để đặt m ột control lên Form là nháy đúp
(doubleClick) control trong Toolbox, m ột hình control s ẽ hiện ra trên Form. K ế đó b ạn
chuyển control đi đến chỗ mình muốn và thay đổi kích thước của nó. Nếu bất cứ lúc nào bạn
không thấy Túi đồ nghề (Toolbox) nằm bên trái, b ạn có thể dùng mệnh lệnh Menu View |
Toolbox để bắt nó hi ện ra. Có m ột cách khác là click lên bi ểu tượng toolbox trên toolbar
chính của VB6.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
18
I.1.4.2. Resize và di chuyển control
Khi bạn chọn một control (click lên nó), quanh control s ẽ hiện ra resize handle, 8 nút đen
dọc theo chu vi của control, dùng để thay đổi vị trí và kích thước control.
Click lên các nút đen của resize handle, bạn có thể thay đổi kích thước control. Có một cách
khác để resize control là dùng Shift + phím m ũi tên (lên, xu ống, phải, trái). Bấm nút Shift
trong khi bấm một arrow key, control sẽ lớn ra hay thu hẹp theo chiều của ArrowKey.
Tương tự như thế, bấm nút Ctrl trong khi b ấm một arrow key, control s ẽ di chuy ển theo
chiều của ArrowKey.
Các thao tác v ẽ và thay đổi kích th ước control v ừa minh h ọa là khi b ạn thi ết k ế form
(design-time). Trong lúc ch ương trình ch ạy (run-time), trong code ta có th ể thay đổi kích
thước và v ị trí các controls d ễ dàng, th ậm chí có th ể làm cho chúng hi ện ra hay bi ến mất
bằng cách sửa đổi giá trị các thuộc tính left, top, width, height và visible của các control.
I.1.4.3. Alignment Grid
Để giúp bạn sắp đặt ngay ngắn các controls trên m ột form, VB6 cho b ạn Alignment Grid.
Nó là những chấm đen của các hàng dọc và xuôi trên form. Bạn có thể làm cho các dấu đen
của grid trên form bi ến mất bằng cách dùng menu Tools | Options để hiện thị hộp thoại
Option, tiếp đó chọn Tab General và bỏ checkbox "Show Grid"
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
19
Bạn c ũng có th ể nhân d ịp này thay đổi kho ảng cách chi ều r ộng (Width) và chi ều cao
(Height) của các chấm đen của grid. Kích thước nhỏ nhất của Width hay Height là 24. Hãy
so sánh hai trường hợp form có và không có Show Grid như dưới đây
I.1.4.4. Control Locking
Một khi bạn đã sắp đặt kích thước và vị trí của các control trên form
rồi, rất dễ ta tình c ờ thay đổi các đặc tính ấy vì vô ý click lên m ột
control. Do đó VB6 cho ta Menu command Format | Lock Controls
để khóa chúng l ại. Sau khi khóa, hình chi ếc khóa trên menu b ị chìm
xuống.
Nếu sau này b ạn muốn thay đổi kích thước hoặc vị trí của chúng thì
nhớ dùng Menu command Format | Lock Controls lại. Sau khi m ở
khóa, cái hình chiếc khóa trên menu hiện ra bình thường.
VB cung cấp rất nhiều control chu ẩn, tạo điều kiện cho b ạn có th ể dễ dàng phát tri ển ứng
dụng của mình. Sau đây chúng ta cùng tìm hiểu các control thông dụng.
Tên Hình minh h
ọ
a Áp d
ụ
ng
TextBox
Nhập dữ liệu từ phía người dùng (người dùng gõ các thông tin
vào hộp TextBox, chương trình có thể đọc và thay đổi thông
tin của TextBox thông qua thuộc tính Text)
CommandButton
Nút lệnh, thực hiện một công việc gì đó khi người dùng nhấn
chuột, gõ phím nóng tác động lên nút lệnh. Khi bị tác động,
nút lệnh sẽ gọi đến hàm tương ứng với sự kiện Click
Label
Hiển thị thông tin để nhắc người dùng. Thường được sử dụng
kết h ợp với một TextBox để nêu ý ngh ĩa của d ữ liệu trong
TextBox đó
CheckBox
Cho phép người dùng nhập dữ liệu theo kiểu có / không
OptionButton
Cho phép ng ười dùng nh ập dữ liệu theo ki ểu một l ựa chọn
trong nhiều lựa chọn khác nhau. Nếu như CheckBox cho phép
chọn nhiều lựa chọn trong 1 nhóm thì OptionButton ch ỉ cho
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
20
phép chọn 1 lựa chọn trong cùng 1 nhóm.
Frame
Dùng để nhóm nhiều CheckBox và OptionButton vào với nhau
thành cùng một nhóm.
ComboBox
Cho phép người dùng lựa chọn 1 giá trị từ nhiều giá trị khác
nhau. ComboBox được hiển thị dưới dạng xổ xuống, khi click
chuột vào Combo thì danh sách các giá trị mới hiện ra.
ComboBox có 2 loại: Một loại chỉ cho phép chọn giá trị, một
loại vừa cho phép chọn giá trị vừa cho phép nhập giá trị mới
Timer
Phát sinh sự kiện Timer sau m ột khoảng thời gian (Xác định
bởi thuộc tính Interval). S ử dụng để tạo chuyển động, hoạt
hình
I.1.5. Thuộc tính & Sự kiện
Chúng ta đã làm vi ệc với form và control (v ẽ các đối tượng), thay đổi các thu ộc tính của
form, control qua bảng thuộc tính (properties). Phần này sẽ trình bày một cách hệ thống các
thuộc tính và sự kiện phổ biến.
I.1.5.1. Thuộc tính
Mỗi đối tượng có các thu ộc tính mô t ả vị trí, kích th ước, tính chất khác nhau, thay đổi các
giá trị của thuộc tính thì tính chất của đối tượng thay đổi. Bảng dưới đây liệt kê những thuộc
tính thông dụng của hầu hết tất cả các control.
Tên thu
ộ
c tính Mô t
ả
Left Vị trí bên trái của control
Top Vị trí bên trên của control
Height Chiều cao của control
Width Chiều rộng của control
Name Tên control (tên này sẽ được sử dụng như là tên biến của đối tượng)
Enabled (True/False) Người dùng có thể tác động đến control hay không?
Visible (True/False) Control có được nhìn thấy hay không?
I.1.5.2. Sự kiện
Sự kiện là khái ni ệm mới mẻ đối với những người chuyển t ừ Pascal sang VB. M ỗi đối
tượng sở hữu nhiều sự kiện khác nhau, tùy theo tác động của người dùng (ho ặc hệ thống)
mà các đối tượng phát sinh ra các sự kiện tương ứng. Ví dụ: trong một ô nhập dữ liệu tên là
txtDuLieu
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
21
- Khi người dùng nhấn phím A, ô TextBox phát sinh s ự kiện KeyDown (gọi tới hàm
txtDuLieu_KeyDown).
- Nếu người dùng giữ phím A trong 1 kho ảng thời gian đủ dài, ô TextBox s ẽ liên tục
phát ra các s ự kiện KeyPress (gọi tới hàm txtDuLieu_KeyPress) và đưa các ký t ự
'A' vào ô nhập liệu.
- Khi người dùng th ả phím A ra, ô TextBox phát sinh s ự kiện KeyUp (gọi tới hàm
txtDuLieu_KeyUp).
Tên s
ự
kiên Mô t
ả
Change Người dùng sửa nội dung của combo box hoặc text box
Click Người dùng click trái chuột trên button hoặc control
DblClick Người dùng click đúp trái chuột trên control
DragDrop Người dùng kéo control đến một vị trí khác
DragOver Người dùng kéo control lên trên một control khác
GotFocus Control nhận focus (tức là mọi thao tác phím được gửi đến control)
KeyDown
Người dùng nhấn phím khi control đang focus (chỉ phát sinh 1 l ần khi người dùng
nhấn phím)
KeyPress
Người dùng nhấn phím khi control đang focus (phát sinh nhiều lần, khi người dùng
giữ phím thì sẽ phát sinh nhiều sự kiện KeyPress – hiện tượng giữ và lặp phím)
KeyUp Người dùng thả phím khi control đang focus
LostFocus Control mất focus
MouseDown
Người dùng nh ấn phím chu ột (c ả trái và ph ải) khi con tr ỏ chu ột đang ở trên
control
MouseUp Người dùng thả phím chuột (cả trái và phải) khi con trỏ chuột đang ở trên control
MouseMove Người dùng di chuyển con trỏ chuột trên control
I.1.6. Các control thông dụng
I.1.6.1. TextBox
TextBox là control đuợc dùng nhiều nhất để hiển
thị văn bản và nhập dữ liệu. Thuộc tính chính của
Textbox là Text. Ta có th ể disable (khiến nó bất
lực, không phản ứng gì hết và không cho sửa đổi)
một TextBox bằng cách đặt thuộc tính Enable là
False (chữ sẽ bị mờ đi), hay Lock (không cho sửa
đổi) m ột text box b ằng cách đặt thu ộc tính
Locked là True (chữ không bị mờ).
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
22
Text có thể được căn lề (thuộc tính Alignment) để căn chữ bên trái, chính giữa hay bên phải
của hộp nó (như hình bên).
I.1.6.2. CommandButton
CommandButton rất tiện cho ta dùng vào vi ệc xử lý một chuyện gì khi ng ười dùng Click
(chuột hoặc phím) lên button. Event ta dùng th ường nhất cho CommanButton là Click. Nội
dung hiển thị trên Button được xác định thông qua thu ộc tính Caption. Để người dùng có
thể sử dụng phím nóng (ví d ụ: Phím Exit – ALT+E – đè nút Atl trong lúc b ấm nút E), bạn
đặt ký tự "&" trước chữ E trong Caption c ủa button (&Exit). Button sẽ hiển thị với chữ E
được gạch chân (Exit).
Ngoài ra ta cũng có thể cho thêm một cái hình vào CommandButton bằng cách chọn một
icon cho thuộc tính Picture và đặt thuộc tính Style là Graphical (thay vì Standard)
Lúc run-time bạn có thể thay đổi hình hay Caption của CommandButton. Trong thí dụ dưới
đây, Caption của CommandButton CmdOperation biến đổi giữa hai values Stop và Start:
Private Sub CmdOperation_Click()
If CmdOperation.Caption = "&Stop" Then
CmdOperation.Caption = "St&art"
Else
CmdOperation.Caption = "&Stop"
End If
End Sub
I.1.6.3. Label
Mục đích chính của Label là để hiển thị thông tin hỗ trợ người dùng. Do đó ta có thể dùng
thuộc tính Font, ForeColor và Backcolor hiển thị chữ theo ý thích. Ngoài ra thu ộc tính
BorderStyle có thể cho Label lõm xuống nếu bạn đặt nó là Fixed Single. Nếu đặt thuộc tính
BackStyle bằng Transparent sẽ tránh trường hợp Backcolor của Label làm cho không đẹp.
Label c ũng có thu ộc tính Tabindex. N ếu b ạn mu ốn dùng ALT key để focus v ề m ột
Textbox, hãy để một Label với TabIndex bằng TabIndex của TextBox trừ 1. Giả sử Label
có Caption là "&Address" thì ALT+A sẽ mang Tab Cursor về TextBox màu vàng như trong
thí dụ dưới đây:
Ngoài ra nhớ rằng bạn có thể thay đổi Caption của Label lúc run-time.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
23
I.1.6.4. CheckBox
CheckBox được dùng để người dùng xác nh ận có đặc tính nào m ột cách nhanh chóng (giá
trị có hoặc không). Thuộc tính Value của CheckBox có thể là Checked (làm cho hộp vuông
có dấu, bằng 1), Unchecked (làm cho hộp vuông trống không, bằng 0) hay Grayed (làm cho
hộp vuông có d ấu màu nh ạt, bằng 2). B ạn có th ể dùng thu ộc tính Alignment để làm cho
Caption đứng bên phải (Left Justify) hay bên trái (Right Justify) của hộp vuông.
I.1.6.5. OptionButton
OptionButton (còn g ọi là RadioButton) có hình tròn v ới một chấm ở giữa, thay gì hình
vuông với một gạch ở giữa như CheckBox. OptionButton luôn luôn được qui tụ thành một
nhóm, chứa trong m ột container. Container là m ột Control có kh ả năng chứa các controls
khác (Frame, PictureBox, hay chính Form đều là Container). Sau khi đặt một Container lên
Form, nếu muốn để một OptionButton lên Container, trước hết ta phải chọn container, rồi kế
đó chọn OptionButton. Sở dĩ, tất cả OptionButtons phải nằm trong một container là vì b ất
cứ lúc nào, nhi ều nhất là m ột OptionButton trong container có value True (vòng tròn có
chấm ở giữa).
Muốn biết một OptionButton có thật sự nằm trong một container, bạn thử kéo container đi
chỗ khác. Nếu OptionButton b ị dời theo container thì nó n ằm trong container. M ột cách
khác là th ử kéo OptionButton ra kh ỏi container. Nếu kéo ra được thì nó không n ằm trong
container.
Muốn di chuy ển m ột OptionButton t ừ container này sang container khác, b ạn Cut
OptionButton rồi Paste nó vào container kia.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
24
I.1.6.6. ComboBox
ComboBox là control cho phép b ạn chọn một giá tr ị từ nhiều lựa chọn trong danh sách.
ComboBox là danh sách kiểu sổ xuống nên chiếm rất ít diện tích và rất được ưa dùng.
Để tạo danh sách các giá tr ị lựa chọn lúc design-time, trên c ửa sổ Properties, click đúp vào
thuộc tính List, trong danh sách gõ các giá tr ị, mỗi giá tr ị 1 dòng. Chú ý: Để xuống dòng
trong khi gõ danh sách, b ạn phải dùng tổ hợp phím Ctrl+Enter thay vì phím Enter (dùng
để xác nhận giá trị cuối cùng).
Để tạo danh sách các giá tr ị lựa chọn lúc run-time, ta s ử dụng phương thức AddItem của
Combo. Ví dụ sau minh họa cách tạo danh sách các giá trị của control có tên là Combo1
Private Sub Form_Load()
Combo1.AddItem "CNPM"
Combo1.AddItem "THXD"
Combo1.AddItem "KTHT"
Combo1.AddItem "TUD"
End Sub
Chú ý: Để người dùng không th ể nhập thông tin vào Combo nh ư TextBox, hãy thi ết lập
thuộc tính Style là Dropdown List. Giá trị mặc định của Style là Dropdown Combo, ở kiểu
này, Combo ho ạt động như 1 TextBox nh ưng lại cho phép ng ười dùng nh ập nhanh b ằng
cách lựa chọn các giá trị từ danh sách.
B
ộ
môn Tin h
ọ
c Xây d
ự
ng –
Đ
HXD Tài li
ệ
u h
ướ
ng d
ẫ
n th
ự
c t
ậ
p t
ố
t nghi
ệ
p
25
I.1.7. Menu
Ta dùng Menu Editor để tạo hoặc sửa một Menu cho program. Menu thu ộc về một Form.
Do đó, trước hết ta chọn một Form để làm việc với Form Designer. Ti ếp đó ta dùng menu
Tools | Menu Editor hay click lên icon của Menu Editor trên Toolbar để làm cho Menu
Editor hiện ra.
Đầu tiên có m ột vệt màu xanh n ằm trong khung tr ắng của Menu Editor, n ơi sẽ hiển thị
Caption c ủa Menu Command đầu tiên c ủa Form. Khi ta đánh ch ữ &File vào Textbox
Caption, nó c ũng hi ện ra trên v ệt xanh nói trên. K ế đó, b ạn có th ể đánh tên c ủa Menu
Command vào Textbox Name. Dù ta cho Menu Command m ột tên nhưng ta ít khi dùng nó,
trừ trường hợp muốn nó visible/invisible (hi ện ra/biến mất). Bình th ường ta dùng tên c ủa
MenuItems nhiều hơn.
Để có một Menu như trong hình dưới đây ta còn ph ải edit thêm vào các MenuItems Open,
Save, Close và Exit.
Hình dưới đây cho thấy tất cả các MenuItems c ủa Menu Command File đều nằm thụt qua
bên phải với bốn dấu chấm ( ) ở phía trước. Khi ta click dấu tên chỉ qua phải thì MenuItem
ta đang Edit sẽ có thêm bốn dấu chấm, tức là thụt một bậc trong Menu (Nested).