1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tài liệu hướng dẫn thực tập tốt nghiệp công nghệ thông tin

116 1,1K 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 116
Dung lượng 0,99 MB

Nội dung

Tài liệu hướng dẫn thực tập tốt nghiệp công nghệ thông tin

Trang 1

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)

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

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ả

Trang 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

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

Trang 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

Trang 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)

Trang 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

Trang 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ó

Trang 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

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

Trang 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

Trang 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

Trang 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

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

Trang 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"

Trang 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

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

Trang 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

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?

Trang 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.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ờ)

Trang 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

Trang 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

Trang 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()

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

Trang 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)

Trang 26

Tương t ự như v ậy, khi ta click d ấu tên ch ỉ qua trái thì MenuItem ta đang Edit s ẽ mất bốn dấu chấm, tức là trồi một bậc trong Menu

Nếu muốn cho User dùng Alt key để xử dụng Menu, b ạn đánh thêm d ấu & trước character bạn muốn trong menu Caption Thí dụ Alt-F sẽ thả xuống Menu của Menu Command File Nếu b ạn đặt cho MenuItem &Open tên mnuOpen, thì khi b ạn Click lên Caption nó trên Form trong lúc thi ết kế, VB6 IDE s ẽ hiển thị cái v ỏ của Sub mnuOpen_Click(), gi ống như Sub cmdButton_Click() của một CommandButton

Private Sub mnuOpen_Click()

MsgBox "You clicked mnuOpen"

End Sub

Trong thí d ụ trên ta đánh thêm m ột Statement để hi ển th ị m ột message đơn gi ản "You clicked mnuOpen" B ạn có th ể đặt cho m ột MenuItem tên gì c ũng được, nh ưng ng ười ta

thường dùng ti ền t ố mnu để d ễ phân bi ệt một menuItem Event v ới một CommandButton

Event Do đó, ta có những tên mnuFile, mnuOpen, mnuSave, mnuClose, mnuExit

Cái gạch ngang giữa MenuItems Close và Exit được gọi là Menu Separator Bạn có thể nhét một Menu Separator bằng cách cho Caption nó bằng dấu trừ ( - )

Ngoài phím Alt ta còn có thể cho User dùng Shortcut của menuItem Để cho MenuItem một Shortcut, bạn chọn cho nó một Shortcut từ ComboBox Shortcut trong Menu Editor

Trong hình dưới đây ta chọn Ctrl+O cho mnuOpen

Bình thường menuItem được Enabled và Visible Lúc thi ết kế bạn có thể cho MenuItem giá trị khởi đầu của Enabled và Visible bằng cách dùng Checkboxes Enabled và Visible

Trong khi ch ạy program (at runtime), b ạn c ũng có th ể thay đổi các values Enabled và Visible như sau:

mnuSave.Enabled = False

mnuOpen.Visible = False

Trang 27

Khi một MenuItem có Enabled=False thì nó bị mờ và người dùng sẽ không dùng được Bạn dùng các dấu mũi tên chỉ lên và xuống để di chuyển MenuItem đã được selected lên và xuống trong danh sách các MenuItems B ạn dùng button Delete để h ủy bỏ MenuItem đã được selected, Insert để nhét m ột MenuItem m ới ngay trên MenuItem đã được selected và Next để chọn MenuItem ngay dưới MenuItem đã được selected

I.2 Ngôn ngữ Visual Basic

I.2.1.1 Biến

VB không b ắt buộc bạn phải khai báo biến, tuy nhiên một lời khuyên là bạn hãy đặt chế độ

bắt buộc khai báo bi ến Để thi ết l ập ch ế độ này, b ạn vào menu Tools | Options , trên tab Editor, đánh d ấu vào “Require Variable Declaration ” Sau đó, b ất k ỳ m ột Form hay

Module nào được tạo mới đều có khai báo sau đây ở đầu tiên

Option Explicit

Với khai báo này, tất cả các biến trước khi sử dụng đều phải có khai báo với cú pháp sau

Dim <Tên bi ến> As <Ki ểu biến>

Ví dụ

Dim i As Integer ' Bi ến kiểu số nguyên

Dim s As String ' Bi ến kiểu xâu ký tự

Dim a As Double ' Bi ến kiểu số thực kép

Dim c, d, e As Double ' Khai báo th ế này là sai, chỉ có e là Double ' Còn c, d là ki ểu Variant (biến tùy ý)

Dim c As Double , d As Double , e As Double

' Khai báo th ế này mới đúng

Quy ước đặt tên biến

- Bắt đầu bằng chữ cái, không bắt đầu bằng chữ số

- Tên bi ến có th ể chứa chữ cái, ch ữ s ố, ký t ự “_”, nh ưng không ch ứa các ký t ự đặc biệt

- Độ dài tối đa của tên biến là 255 ký tự

I.2.1.2 Kiểu biến

Biến được s ử dụng để lưu các giá tr ị, giá tr ị có th ể là s ố (số thứ tự, số người ), có th ể là dạng văn bản (xâu ký t ự) Ngoài ra bi ến có th ể ở dạng phức tạp, ví dụ mảng: chuỗi các giá trị cùng kiểu sắp xếp liên tiếp, hoặc kiểu dữ liệu do người dùng định nghĩa

Trang 28

Khi bạn đã biết lập trình trên m ột ngôn ngữ, việc hiểu kiểu biến của một ngôn ng ữ khác là tương đối đơn giản Các kiểu biến trong VB được chia thành các loại sau

Dim Result As Long

Result = 30345 * 100 ' s ẽ bị overflow error

' Hãy vi ết như sau:

Dim Result As Long

Result = 30345

Result = Result * 100 ' không b ị overflow error

Biến kiểu xâu ký tự

Mỗi ký tự trong máy tính tương ứng với một số hiệu (mã ASCII) Một chuỗi các ký tự ghép với nhau t ạo ra một xâu ký t ự (String) String trong VB được ký hi ện trong c ặp ngoặc kép,

ví dụ:

Dim FirstWord As String

Dim SecondWord As String * 20 ' Xâu ký t ự có độ dài tối đa 20 ký tự

Dim Greeting As String

FirstWord = "Hello"

SecondWord = "World"

Greeting = FirstWord & SecondWord ' Greeting bây gi ờ là "HelloWorld"

Greeting = FirstWord & " " & SecondWord

Biến kiểu logic

Kiểu logic là kiểu biến cơ bản, có mặt trong hầu hết các ngôn ngữ Biến logic (Boolean) chỉ mang hai giá trị là True (đúng) và False (sai)

Biến kiểu Boolean thường được sử dụng với các toán tử logic (And, Or, Xor, Not) Các biểu thức điều kiện trả về giá trị kiểu Boolean

Biến kiểu mảng

Trang 29

Mảng là kiểu dữ liệu phức gồm nhiều giá trị cùng kiểu sắp xếp liên tiếp nhau Các ph ần

tử này được truy xu ất qua ch ỉ số M ảng trong VB g ồm mảng tĩnh và mảng động, m ảng

tĩnh là m ảng được xác định kích th ước ngay t ừ khi d ịch chương trình, m ảng động có kích thước chưa xác định và chỉ được cấp phát khi run-time

Tốc độ truy xuất dữ liệu của mảng tĩnh và mảng động của VB là như nhau

Dim N(3) As Long ' Không nên khai báo ki ểu này, gây mập mờ

Dim M(1 To 3) As Long ' Khai báo v ới cả chỉ số đầu và cuối cho tường minh

Ki ểu do người dùng định nghĩa

Ngoài các ki ểu dữ liệu chu ẩn của VB, ng ười dùng còn có th ể tự định ngh ĩa kiểu bi ến của riêng mình (giống với kiểu bản ghi – Record của Pascal)

Private Type TDam

Private Sub Form_Load()

Dim dam As TDam ' Bi ến [dam] thuộc kiểu TDam do người dùng đnghĩa

dam.dai = 500 ' Truy xu ất các trường bằng dấu chấm sau tên biến

dam.rong = 22

dam.cao = 40

dam.ten = "D1"

With dam ' Truy xu ất nhanh các trường bằng câu lệnh With

MsgBox ten & " " & rong & "x" & cao & "x" & dai

End With ' Các tr ường trong With truy xuất không cần tên biến

End Sub

Các bạn lưu ý phân biệt kiểu và biến (rất nhiều người nhầm lẫn 2 khái niệm này với nhau) Trong ví dụ nêu trên TDam là kiểu (giống như kiểu Integer, kiểu String) chứ không phải là một biến để gán giá trị

Trong Sub Form_Load, dam là một biết kiểu TDam Theo khai báo đã có, biến dam sẽ có các trường (fields) là dai, rong, cao, ten Để truy nh ập các tr ường của biến dam, sử dụng

dấu chấm (ví dụ dam.dai hay dam.rong hoặc dam.cao)

Trang 30

Kiểu liệt kê (Enum)

Kiểu li ệt kê là ki ểu do ng ười dùng định ngh ĩa, bi ến thuộc kiểu này có giá tr ị là m ột trong các giá tr ị được li ệt kê trong ki ểu S ử d ụng ki ểu li ệt kê v ừa đơn gi ản v ừa có t ốc độ cao (nhanh hơn rất nhiều so với thói quen sử dụng String để phân biệt các trường hợp) Để nắm

rõ cách sử dụng kiểu Enum, hãy quan sát hình minh họa bên dưới

Kiểu Variant

Kiểu Variant là m ột kiểu dữ liệu khác l ạ đối với những người mới chuyển từ Pascal sang

VB Kiểu Variant chấp nhận mọi giá trị có thể: số nguyên, số thực, xâu ký tự, mảng, kiểu dữ liệu người dùng định nghĩa

Sử dụng Variant cho phép ng ười lập chình uy ển chuyển, m ềm dẻo hơn trong quá trình l ập

trình Tuy nhiên, Variant có nh ược điểm là rất chậm, do đó b ạn nên h ạn ch ế dùng trong

trường h ợp s ử d ụng tính toán nhi ều (nh ất là đối v ới các ứng d ụng tính toán k ết cấu trong ngành Tin học Xây dựng)

Kiểu Collection

Sử dụng mảng với chỉ số tuần tự cho tốc độ làm việc nhanh nhưng không thật sự mềm dẻo Nếu chúng ta mu ốn truy c ập một phần tử theo tên thành viên thì vi ệc sử dụng cấu trúc d ữ liệu kiểu mảng là không hiệu quả do thời gian tìm kiếm lâu

Trong SAP2000, tên ph ần tử được đặt tùy ý (s ố hoặc chữ), nếu là số thì thường không theo thứ tự hoặc không liên tiếp Do đó sử dụng mảng để lưu các phần tử đọc được từ file kết quả của SAP là không khả thi

VB hỗ trợ kiểu dữ liệu tập hợp (Collection) cho phép truy c ập phần tử theo tên (cấu trúc

dữ liệu này được tối ưu hóa nên tốc độ tìm kiếm rất nhanh)

Dim Ten As New Collection ' T ạo mới một Collection

Ten.Add "Cong nghe Thong tin" ' Thêm 1 ph ần tử vào Collection

Ten.Add "Tin hoc Xay dung"

Ten.Add "Cong nghe phan mem"

Ten.Add "Ky thuat He thong"

Trang 31

MsgBox Ten(1) ' S ử dụng tập hợp như mảng

MsgBox Ten(3) ' Truy c ập theo chỉ số

Dim TuDien As New Collection

TuDien.Add "Cong nghe Thong tin", "CNTT" ' Thêm 1 ph ần tử gồm giá trị, tên

TuDien.Add "Tin hoc Xay dung", "THXD" ' Tên ph ần tử phải là duy nhất

TuDien.Add "Cong nghe phan mem", "CNPM"

TuDien.Add "Ky thuat He thong", "KTHT"

MsgBox TuDien("CNTT") ' Truy c ập phần tử theo tên

MsgBox TuDien("CNPM")

Quy ước đặt tên biến theo kiểu

Bảng dưới đây liệt kê các kiểu biến thường sử dụng, để việc lập trình được thuận tiện, người

ta thường đặt kiểu biến là ti ếp đầu ngữ - prefix (v ới 3 ký t ự) Việc đặt tên bi ến như vậy sẽ giúp cho người lập trình không bị nhầm lẫn về kiểu biến, tránh được những sai sót đáng tiếc

về sau

Trang 32

s1 = s1 & " " & There ' s1 = "Hello, There"

I.2.1.6 Toán tử điều kiện

Các toán tử điều kiện dùng để so sánh các giá tr ị (biểu thức) với nhau, giá tr ị trả về là kiểu Boolean (True – đúng hoặc False – sai)

> Lớn hơn 6 > 3 True

< Nhỏ hơn 5 < 11 True

Trang 33

>= Lớn hơn hay bằng 23 >= 23 True

<= Nhỏ hơn hay bằng 4 <= 21 True

<> Khác 3 <> 3 False

I.2.1.7 Toán tử logic

Các điều kiện logic có thể được kết hợp với nhau bằng các toán tử logic

And Cả hai toán hạng cùng đúng (2 < 3) And (4 < 5) True

Or Ít nhất một trong hai toán hạng đúng (2 > 3 ) Or (6 < 7) True

Xor Một toán hạng đúng, 1 toán hạng sai (2 < 3) Xor (7 > 4) False

Chương trình mu ốn ho ạt động theo s ự điều khiển không ch ỉ có các l ệnh gán mà còn ph ải gồm các l ệnh điều khiển (rẽ nhánh, l ặp ) Các l ệnh này cho phép ch ương trình ho ạt động theo một kịch bản xác định

I.2.2.1 Cấu trúc If Then End If

If < Điều kiện> Then

<Các l ệnh>

End If

Kiểm tra điều kiện (biểu thức logic)

- Nếu điều ki ện là đúng (True) thì th ực hi ện các l ệnh n ằm trong c ấu trúc (gi ữa If và End If)

- Nếu điều kiện sai (False) thì bỏ qua, không thực hiện các lệnh này

I.2.2.2 Cấu trúc If Then Else End If

If < Điều kiện> Then

<Các l ệnh nếu điều kiện đúng>

Else

<Các l ệnh nếu điều kiện sai>

End If

Kiểm tra điều kiện

- Nếu điều kiện đúng, thực hiện nhánh đúng (Giữa If và Else)

- Nếu điều kiện sai, thực hiện nhánh sai (Giữa Else và End If)

Trang 34

I.2.2.3 Select Case

Select Case <Bi ểu thức>

' Ki ểm tra kết quả của câu trắc nghiệm

Select Case txtGrade.Text

I.2.2.4 Vòng lặp Do While Loop

Do While < Điều kiện>

<Các l ệnh>

Loop

Nếu điều kiện còn đúng thì th ực hiện tiếp các l ệnh giữa Do Loop Đây là vòng l ặp kiểm tra điều ki ện trước, có ngh ĩa là n ếu < Điều kiện> sai ngay t ừ đầu thì <Các l ệnh> s ẽ không được thực hiện 1 lần nào

Trang 35

<Các l ệnh>

Loop While < Điều kiện>

Thực hiện các lệnh giữa Do Loop cho đến khi điều kiện sai Đây là vòng lặp kiểm tra điều kiện sau, có ngh ĩa là <Các l ệnh> s ẽ được thực hiện ít nh ất một lần (kể cả khi < Điều kiện> sai ngay từ đầu)

I.2.2.6 Vòng lặp For Next

For <bi ến Đếm> = <bắt Đầu> To <k ết Thúc> [ Step <kho ảng Tăng>]

<Các l ệnh>

Next [bi ến Đếm]

- Lặp với <biến Đếm> bắt đầu từ giá trị <bắt Đầu>, mỗi lần tăng một lượng <khoảng Tăng> cho đến b ằng giá tr ị <k ết Thúc> M ỗi lần l ặp thực hiện các l ệnh gi ữa For Next

- Nếu không khai báo Step <khoảng Tăng>, giá trị tăng mặc định là 1

- Muốn lặp với <biến Đếm> giảm dần, đặt <khoảng Tăng> là giá trị âm (ví dụ -1)

Biến <phần tử> (phải là kiểu Variant) lặp qua tất cả các phần tử con của <nhóm> (thường

là kiểu tập hợp – Collection), mỗi lần lặp thực hiện <các lệnh> Đây là lệnh rất thuận tiện để làm việc với nhóm các phần tử (ví dụ nhóm các control của form) Đoạn chương trình ví dụ dưới dây minh họa vòng lặp For Each với một tập hợp các xâu ký tự

Trang 36

I.2.3 Chương trình con

Cũng như tất cả các ngôn ng ữ lập trình khác, khi có nhi ều công vi ệc được thực hiện lặp đi lặp lại bởi cùng m ột đoạn code, cách t ốt nhất là đưa đoạn code này vào m ột chương trình con để có thể sử dụng lại nhiều lần Chương trình con có th ể là Sub – giống procedure hoặc Function – giống function trong Pascal

Trong đoạn chương trình ví dụ trên:

- <Tên sub> là "TangGiaTri"

- Các tham số là a (kiểu Integer), b (kiểu Integer)

- Thủ tục thực hiện nhiệm vụ tăng biến a lên 1 lượng b

Trong đoạn chương trình ví dụ trên:

- <Tên function> là "Tong"

- <Kiểu function> là Integer

- Các tham số là a (kiểu Integer), b (kiểu Integer)

- Hàm trả về tổng của 2 số a và b

I.2.3.3 Tham biến & tham trị

Để tìm hiểu về tham biến, tham trị, hãy trở lại ví dụ của Sub (vừa nêu ở phần trên) Ví dụ 1:

Trang 37

Private Sub TangGiaTri(a As Integer, b As Integer)

TangGiaTri để được đoạn chương trình sau Ví dụ 2:

Private Sub TangGiaTri( ByVal a As Integer, b As Integer)

Chạy đoạn chương trình này, hộp thoại MsgBox trả về giá trị 10 Tại sao vậy? Nguyên nhân

vì trong tr ường h ợp này bi ến a trong Sub TangGiaTri không ph ải là bi ến c trong Sub

Command1_Click a chỉ là bản sao của c (do được truyền giá trị - by value), khi đó ta gọi a

là tham trị

Trong trường hợp của ví dụ 1, khai báo đầy đủ là

Private Sub TangGiaTri( ByRef a As Integer, ByRef b As Integer)

Khi đó, biến a trong Sub TangGiaTri chính là bi ến c trong Sub Command1_Click, t ăng giá

trị của a chính là tăng giá trị của c a gọi là tham chiếu (reference) của c Trường hợp này ta gọi a là tham biến

Chú ý: Nếu không khai báo gì, VB mặc định là ByRef (quy ước này ngược với Pascal – mặc định là tham trị)

Windows là h ệ điều hành c ửa s ổ, t ất c ả các giao ti ếp c ủa ng ười s ử d ụng v ới các ch ương trình chủ yếu thông qua cửa sổ Cửa sổ chứa các control gọi là Form, trong VB có nhiều loại Form, tất cả đều có những thuộc tính chung

Trang 38

I.2.4.1 Các thuộc tính của Form

Nhiều thu ộc tính c ủa m ột form ảnh h ưởng đến hình ảnh c ủa nó Thu ộc tính Caption s ẽ quyết định text được hiểu thị trong title N ếu thuộc tính BorderStyle của form không ph ải

là Sizable thì ng ười dùng không th ể resize form lúc run-time Thu ộc tính Icon quy ết định hình icon đuợc dùng trong tiêu đề của form, nhất là khi form thu nh ỏ (minimized) Nếu bạn không mu ốn cho phép ng ười dùng minimize hay maximize form thì đặt thu ộc tính

MinButton, MaxButton ra False Nếu thuộc tính ControlBox là False thì form sẽ không có

nút minimize, maximize hay close (x) trên góc ph ải của nó, đồng thời form cũng không có

cả cả icon bên góc trái form như trong hình dưới đây

Thuộc tính WindowState xác định Form s ẽ có kích th ước bình th ường normal (=0), hay

minimized (=1), maximized (=2)

Lưu ý là thuộc tính Font của Form sẽ được các control nằm trên nó thừa kế Tức là khi bạn

đặt một control lên form, thuộc tính Font của control ấy sẽ tự động trở nên giống y như của form

I.2.4.2 Các sự kiện của Form

Nhìn t ừ m ột ph ương di ện, Form c ũng gi ống nh ư Control T ừ 1 form, ta có th ể t ạo nhi ều form tương tự nhau Trong thí dụ dưới đây, ta sử dụng MyForm và YourForm là 2 biến kiểu Form2 để tạo 2 form giống hệt nhau

Dim MyForm As New Form2

Dim YourForm As New Form2

MyForm.Show

YourForm.Show

Một Form cũng có nhiều Events rất hữu dụng

Form_Initialize: Event này x ảy ra trước nh ất và ch ỉ một lần thôi khi ta kh ởi tạo form đầu

tiên Ta dùng Form_Initialize event để thực hiện những gì cần phải làm chung cho tất cả các instances của form này

Form_Load: Event này x ảy ra m ỗi l ần ta instantiate m ột form N ếu ta ch ỉ dùng m ột

instance duy nhất của một form trong chương trình thì Form_Load coi như tương đương với Form_Initialize Ta dùng Form_Load event để initialise variables, controls v.v cho instance này

Bên trong Form_Load b ạn không thể dùng SetFocus cho m ột control nào trên form vì form chưa hẳn thành hình (ra đời) Muốn làm việc ấy bạn phải delay (trì hoản) một chút xíu bằng cách dùng Control Timer để đợi cho Form_Load được hoàn tất Thí dụ:

Private Sub Form_Load()

Timer1.Interval = 500

Timer1.Enabled = True

End Sub

Trang 39

Private Sub Timer1_Timer()

Timer1.Enabled = False ' Timer1_Timer only execute once

txtName.Setfocus ' Make Tab Cursor start at TextBox txtName

End Sub

Form_Activate: Mỗi lần một form tr ở nên active (khi form được hiện lên trên cùng so v ới

các form khác) thì nó phát sinh sự kiện Activate

Form_QueryUnload: Khi ng ười dùng click d ấu x phía trên bên ph ải để close form thì nó

phát sinh sự kiện QueryUnload với cú pháp sau:

Private Sub Form_QueryUnload(Cancel As Integer , UnloadMode As Integer )

End Sub

Event này cho ta m ột d ịp để Cancel Close action c ủa form (t ức là không cho User close form) b ằng cách set Cancel b ằng 1 UnloadMode cho ta bi ết ai, task hay form nào mu ốn close form này

Ngoài ra, b ạn cũng nên bi ết rằng một form t ự động Load hay tr ở nên Active n ếu bạn nh ắc đến nó, thí dụ như dùng Form2.List1 Khi một form đã được loaded rồi bạn có thể hide (làm cho biến mất) nó Kế đó, khi bạn show form ra tr ở lại thì form không có gì thay đổi Nhưng nếu b ạn Unload m ột form (thí d ụ b ằng cách dùng Unload Form2 ), r ồi sau đó load tr ở lại bằng cách dùng Form2.Show ch ẳng hạn, thì Form ph ải trải qua quá trình Form_Load, và d ĩ nhiên form mất tất cả những gì có trước đây Ngoài ra, Hide/Show một form đã được loaded rồi thì rất nhanh, còn Unload/Load thì mất thì giờ hơn

Khi bạn Show một Form chưa hiện hữu thì form sẽ được loaded và show Đôi khi bạn muốn Load m ột form, r ồi làm vi ệc v ới nó tr ước khi Show, trong tr ường h ợp đó b ạn dùng Load Form2 rồi một chập sau dùng Form2.Show

I.2.4.3 MDI Form

Đôi khi bạn muốn có một MDI form, tức là một form có thể chứa nhiều form con bên trong Dạng MDIform này th ường được dùng trong các ứng d ụng nh ư Micrsoft Word hay AutoCAD để có th ể mở nhiều document cùng m ột lúc, m ỗi document được hiển th ị trong

một form con Để có m ột MDIForm b ạn c ần ph ải dùng menu Project | Add MDI Form

Mỗi VB6 project ch ỉ có th ể có t ối đa một MDIForm Mu ốn một form tr ở thành m ột form

con bạn set thu ộc tính MDI Child của nó thành True Khi run-time b ạn không th ể ẩn (đặt

thuộc tính Visible là False) một MDIChild form, nhưng có thể minimize nó Nếu bạn thật sự muốn ẩn nó thì phải dùng mánh lới là cho nó vị trí (top,left) số âm lớn hơn kích thước nó để

nó nằm ngoài tầm hiển thị của form Trong một chương trình dùng MDI Form, khi bạn click MDI Form nó không nh ảy ra phía tr ước và che các form con, nh ưng vẫn luôn luôn n ằm ở dưới

Trang 40

I.2.5 Module

Khi quy mô của chương trình trở nên phức tạp, việc viết tất cả mã lệnh tại cùng một file mã chương trình sẽ gây khó khăn trong quản lý mã nguồn Chia để trị là giải pháp tốt nhất trong trường h ợp này Mã ch ương trình (g ồm các bi ến, hàm ) được phân chia thành nhi ều module khác nhau, mỗi module là tập hợp của nhiều biến, hàm có cùng tính ch ất hoặc chức năng (việc phân chia là tùy thuộc quan điểm của người phát triển)

Các module VB được lưu vào các file có phần mở rộng BAS

Một ứng dụng không thể thiếu dữ liệu, công việc đầu tiên khi xây dựng ứng dụng là tổ chức các dữ liệu trong ứng dụng đó (các kiểu biến như thế nào? đặt tên biến ra sao? khai báo biến

ở đâu? biến toàn cục hay địa phương)

Dưới đây là một số lời khuyên khi bạn tổ chức dữ liệu trong một VB project

- Không lưu dữ liệu toàn c ục trong Form : Hầu hết những người mới làm quen v ới

VB đều cùng có m ột thói quen không t ốt là để các bi ến toàn c ục trong Form Khi chạy chương trình, Form ch ưa được khởi tạo Nó ch ỉ được khởi tạo khi nào b ạn s ử dụng các thao tác hoặc thuộc tính của Form lần đầu tiên Ngoài ra, form có thể bị loại khỏi bộ nhớ khi bạn dùng phương thức Unload, khi đó các giá trị tính toán được sẽ bị

mất (xem ví dụ minh họa ở phầ cuối của mục này) Giải pháp cho v ấn đề này là lưu

dữ liệu trong module , m ỗi khi form load, đọc toàn b ộ dữ liệu cần thiết từ module vào form Khi ng ười dùng click nút OK trên form thì m ới cập nhật dữ liệu từ form vào module

- Đối với các form nh ập dữ liệu, chỉ nên s ử dụng chế độ modal Tức là ch ế độ sử

dụng form ở dạng hộp thoại: Khi form được bật lên, người dùng chỉ có thể tương tác với form đó Mu ốn tác động đến các thành ph ần khác c ủa chương trình, ph ải đóng modal form lại (ví dụ: hộp thoại mở file của các ứng dụng)

Sau đây là ví dụ minh họa về các vấn đề đã được nêu ở trên:

Class module cho phép l ập trình h ướng đối tượng với VB Class c ủa VB có th ể định nghĩa các thuộc tính, thao tác Các Class module c ủa VB được lưu vào các file có ph ần mở rộng

*.CLS

I.2.7.1 Khái niệm Object & Class

Nói một cách nôm na, lập trình theo hướng đối tượng là thiết kế các bộ phận phần mềm của

chương trình, g ọi là Object sao cho m ỗi bộ phận có th ể tự lo li ệu công tác c ủa nó giống

Ngày đăng: 08/06/2014, 21:24

HÌNH ẢNH LIÊN QUAN

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 - Tài liệu hướng dẫn thực tập tốt nghiệp công nghệ thông tin
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 (Trang 25)
Bảng dưới đây liệt kê các kiểu biến thường sử dụng, để việc lập trình được thuận tiện, người  ta th ường đặt kiểu bi ến là ti ếp đầu ngữ - prefix (v ới 3 ký t ự) - Tài liệu hướng dẫn thực tập tốt nghiệp công nghệ thông tin
Bảng d ưới đây liệt kê các kiểu biến thường sử dụng, để việc lập trình được thuận tiện, người ta th ường đặt kiểu bi ến là ti ếp đầu ngữ - prefix (v ới 3 ký t ự) (Trang 31)
Hình d ưới là ví d ụ v ề cách s ử dụng Object Browser: Tìm các hàm h ỗ trợ cho  Excel c ủa - Tài liệu hướng dẫn thực tập tốt nghiệp công nghệ thông tin
Hình d ưới là ví d ụ v ề cách s ử dụng Object Browser: Tìm các hàm h ỗ trợ cho Excel c ủa (Trang 60)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w