Lập trình phát triển ứng dụng với VB
Trang 1Visual Basic 6
Trang 31 Giới thiệu về Visual Basic 6
Trang 4Giíi thiÖu vÒ VB6
1.1Visual Basic là gì?
Micrsoft Visual Basic (viết tắt là VB) là cách dễ dàng nhất và nhanh nhất để xây dựng 1 chương trình ứng dụng chạy trên nền Microsoft Windows VB cũng cấp sẵn 1 tập đầy đủ các công cụ để
làm nhanh, đơn giản quá trình phát triển ứng dụng
“Visual” chỉ cách tạo giao diện người dùng đồ hoạ (GUI – graphic
user interface) một cách trực quan Thay vì phải viết rất nhiều dòng
mã lệnh để mô tả hình dáng và vị trí của các phần tử tạo nên giaodiện, ta chỉ cần đặt những đối tượng đã được xây dựng sẵn lên mànhình (như cách vẽ một bức tranh bằng chương trình Paint)
“Basic” chỉ tới ngôn ngữ lập trình BASIC (Beginners All-Purpose
Symbolic Intstruction Code), một trong những ngôn ngữ lập trình nổi
tiếng VB phát triển từ ngôn ngữ BASIC và hiện chứa rất nhiều câulệnh, hàm, từ khoá, mà nhiều trong số chúng có liên quan trực tiếp tớiGUI của Windows Người mới lập trình có thể tạo những chương trìnhhữu ích bằng cách học sử dụng một số ít các câu lệnh Còn nhữngngười lập trình chuyên nghiệp có thể sử dụng VB để thực hiện bất kỳcông việc nào mà các ngôn ngữ lập trình cho Windows khác có thểlàm được
Ngôn ngữ lập trình Visual Basic không chỉ duy nhất được sử dụngtrong xây dựng chương trình bằng sản phẩm Microsoft Visual Basic.Phiên bản VB cho lập trình các ứng dụng (VBA) có trong MicrosoftExcel, Microsoft Access, VBScript là ngôn ngữ script được sử dụngrộng rãi trong các ứng dụng Web
1.2 Các bản Visual Basic (Visual Basic Editions)
Visual Basic được bán ở 3 bản khác nhau, phù hợp cho những yêucầu phát triển khác nhau:
Bản Visual Basic Learning cho phép lập trình viên xây dựng
các ứng dụng chạy trên MS Windows 95/98/NT/2000 Bản nàychứa đầy đủ các điều khiển cơ sở (intrinsic control), cùng vớicác điều khiển lưới (grid), tab, và điều khiển gắn-dữ liệu Tài liệu
đi kèm gồm có đĩa CDROM chứa “Learn VB Now” và “MicrosoftDeveloper Network (MSDN) Library”
Trang 5 Bản Professional chứa tất cả các tính năng của bản Visual
Basic Learning, cùng với: ActiveX control, Internet InformationServer Application Designer, tích hợp với Visual DatabaseTools, Data Environment, Active Data Objects, Dynamic HTMLPage Designer Tài liệu đi kèm với bản Professional chứa sách
“Visual Studio Professional Features” cùng với thư viện tài liệu
“Microsoft Developer Network“.
Bản Enterprise cho phép những lập trình viên chuyên nghiệp
tạo các ứng dụng mạnh, phân tán Nó gồm các tính năng củabản Professional, cùng với công cụ cho bộ “Back Office” như:SQL Server, Microsoft Transaction Server, Internet InformationServer, Visual SourceSafe, SNA Server, Tài liệu của bảnEnterprise gồm sách “Visual Studio Enterprise Features” cùngvới thư viện tài liệu “Microsoft Developer Network”
Phiên bản Visual Basic (Visual Basic Versions)
Phiên bản Visual Basic hiện hành là Visual Basic 6.0 (Các phiên bảnthông dụng trước đó là 3.0, 4.0 và 5.0)
Phiên bản VB 6.0 ra đời năm 1998 trong bộ Visual Studio 6.0
Phiên bản VB 6.0 có nhiều đặc điểm mới, tăng cường so với cácphiên bản VB trước đó:
Truy nhập cơ sở dữ liệu (ADO, Data Enviroment, )
Hỗ trợ Internet (hỗ trợ IIS, DHTML, )
Thêm nhiều control mới; Cho phép tạo thêm nhiều loại controlmới
Trang 6Giíi thiÖu vÒ VB6
1.3 Cài đặt VB6
Yêu cầu phần cứng
Để chạy Visual Basic, máy tính của ta cần tối thiểu:
Hệ điều hành: Microsoft Windows 95/98/ME/2000/NT (nên làService Pack 3 trở lên)
Bộ vi xử lý: 486DX/66 MHz hay nhanh hơn
1 ổ đĩa CD-ROM
Màn hình VGA hay với độ phân giải cao hơn
Bộ nhớ 16 MB RAM với Windows 95/98; 32 MB RAM vớiWindows NT Workstation
Chuột hay thiết bị tương tự
Đĩa cứng: Tuỳ thuộc vào cài đặt chi tiết
Cài đặt VB 6.0:
Cài đặt VB6
Cài đặt tài liệu MSDN
Trang 71.4Tìm kiếm trợ giúp khi sử dụng VB6
Visual Basic Help được gọi bằng cách chọn “Contents” từ menu
Help; khi đó Thư viện MSDN sẽ được chạy Tại đó có tất cả mọi chủ
đề cần cho lập trình với VB
Contetxt-Sensitive Help (trợ giúp ngữ cảnh) được gọi bằng nhấn F1
bất cứ tại thời điểm cần trợ giúp
Code Editor (Bộ soạn thảo mã lệnh) tự động cung cấp những thông
tin cần thiết khi mã lệnh được đưa vào
Sample Applications (Ví dụ mẫu) minh hoạ các tính năng của VB,
cách sử dụng chúng có trên đĩa CDROM MSDN tại thư mục \Disk 1\Samples
Microsoft Visual Basic Web site chứa thông tin cập nhật nhất về VB.
Trang 8Ph¸t triÓn øng dông víi VB6
2 Phát triển một ứng dụng với Visual Basic
Một số khái niệm cơ bản trong lập trình Windows
Mô hình hướng sự kiện
Môi trường phát triển tích hợp
Các bước cơ bản để xây dựng một chương trình ứng dụng
Tạo mới, mở, lưu trữ 1 project
Trang 92.1Một số khái niệm cơ bản trong lập trình Windows
VB được xây dựng như là môi trường giúp phát triển các ứng dụngcho MS Windows Lập trình với Windows gồm 3 khái niệm cơ sở :window (cửa sổ), event (sự kiện) và message (thông điệp)
Cửa sổ đơn giản là 1 khu vực hình chữ nhật Chúng ta đã biết nhiềuloại cửa sổ khác nhau: cửa sổ chương trình Explorer, cửa sổ 1 tài liệutrong chương trình Windword, 1 hộp thông báo Ngoài ra còn có nhiềuloại cửa sổ khác như: một nút lệnh, một hộp soạn thảo, nút tuỳ chọn,thanh thực đơn
Hệ điều hành MS Windows quản lý các cửa sổ qua số hiệu duy nhấtcủa mỗi cửa sổ (window handle hay hWnd) Hệ điều hành quản lý,theo dõi từng cửa sổ đó để nhận hay gửi các sự kiện Sự kiện có thể
là hành động của người sử dụng như nhấn chuột, ấn phím, hay phátsinh từ các điều khiển được lập trình, hay thậm chí là kết quả củanhững hành động của cửa sổ khác
Mỗi khi có 1 sự kiện xảy ra, nó gửi thông điệp tới cho hệ điều hành.HĐH xử lý thông điệp đó và truyền thông điệp đó tới tất cả các cửa sổ.Mỗi cửa sổ sẽ thực hiện hành động phù hợp của riêng mình để xử lýthông điệp
Xử lý với tất các kết hợp của cửa sổ, sự kiện, thông điệp rất phức tạp
VB giúp chúng ta tránh với việc xử lý chúng ở mức cơ sở và nhờ đógiúp chúng ta xây dựng ứng dụng cho MS Windows dễ dàng hơn
Trang 10Ph¸t triÓn øng dông víi VB6
2.2Mô hình hướng sự kiện
Mô hình thủ tục truyền thống:
- Trình tự thực hiện được định trước
- Chương trình quyết định phần mã lệnh nào được chạy vàtheo thứ tự nào
Mô hình hướng sự kiện (event-driven model)
- Trình tự thực hiện không được định trước
- Những phần mã lệnh khác nhau được chạy để đáp ứngnhững sự kiện
Trang 11- Mã lệnh được dịch cú pháp ngay khi được gõ vào
- Mã lệnh được biên dịch ngay khi được gõ vào
- Hồi âm lập tức cho lập trình viên
Trang 12Ph¸t triÓn øng dông víi VB6
2.4Môi trường phát triển tích hợp
Sau khi khởi động, chúng ta sẽ làm việc trong môi trường phát triểntích hợp gồm: View\chọn các thanh công cụ
Menu Bar: Hiển thị các lệnh khi làm việc với VB
Context Menu: Chứa phím tắt tới các lệnh thường gọi gắn với đốitượng hiện đang làm việc Hãy kích chuột phải để làm xuất hiệnContext Menu
Toolbars: Cho phép truy nhập nhanh tới các lệnh thường sử dụngtrong môi trường lập trình Hãy sử dụng View trên menu bar đểhiển thị/che dấu một toolbar
Toolbox: là hộp công cụ chứa các điều khiển dùng trong khi thiết kế
1 form
Project Explorer Window: Liệt kê form và module có trong dự án(project) xây dựng ứng dụng Ví dụ: Chương trình quản lý SinhViên: Form Nhập sinh viên, Form nhập môn học,
Properties Window: cửa sổ thuộc tính liệt kê các thuộc tính củaform hay của điều khiển (control) được chọn
Object Browser: Liệt kê các đối tượng (object) có trong dự án
Form Designer: Cửa sổ để thiết kế giao diện cho ứng dụng
Code Editor Window: Nơi cho phép soạn thảo lệnh của chươngtrình
Form Layout Window: Cho phép điều chỉnh vị trí của form tươngứng trên màn hình máy tính
Immediate, Locals, và Watch Windows: Những cửa sổ dùng để gỡrối khi chạy chương trình
* Giao diện SDI hay MDI
SDI (single document interface) và MDI (mutiple document interface) là
2 kiểu giao diện của môi trường phát triển tích hợp của VB Để chuyểnđổi giữa chúng sử dụng:
Tools | Options | Advanced ; chọnđánh dấu hay huỷ bỏ tại:
Trang 13SDI Development Enviroment
Trang 14Ph¸t triÓn øng dông víi VB6
Một chương trình viết bằng VB có 2 phần: Form và Code
Trang 152.5Các bước cơ bản xây dựng chương trình
Tạo giao diện
Đặt giá trị thuộc tính
Viết mã lệnh
Chạy và kiểm tra chương trình
Trang 16Ph¸t triÓn øng dông víi VB6
2.6Xây dựng một chương trình ví dụ: Hello
box và 1 command button
- Chuyển con trỏ lên form tới vị trí muốn đặt control
- Nhấn và kéo chuột để điều chỉnh kích cỡ của control
- Thả chuột
Cách 2: Nhấn đúp vào đối tượng trên Toolbox khi đó đối tượng sẽđược đưa vào Form
Trang 18Ph¸t triÓn øng dông víi VB6
Thay đổi kích cỡ, di chuyển, khoá 1 control
- Để thay đổi kích cỡ: nhấn chọn control, đặt chuột tới góc(phải, dưới) và kéo chuột tới kích cỡ mong muốn
- Để thay đổi vị trí: kéo control tới vị trí bằng chuột, rồi thảchuột
- Để khoá cố định vị trí hoặc bỏ khoá: sử dụng chức năng
Format | Lock Controls
Trang 19 Đặt giá trị thuộc tính cho control
Nhấn chọn control
Hiển thị cửa sổ thuộc tính: View \ Properties
Chọn thuộc tính cần đặt từ : Properites List
Nhập giá trị mới vào cột bên phải
Ghi chú:
Object box: Danh sách form và các control trênform
Sort tabs: Kiểu sắp xếp danh sách các thuộc tính:
theo bảng chữ cái (Alphabetic) hay theo phân loại
(Categorized)
Properties list: Danh sách các thuộc tính gắn vớiđối tượng được chọn (trên form hay từ object box)
Trang 20Ph¸t triÓn øng dông víi VB6
Viết mã lệnh
- Mở Code Editor bằng cách: Nhấn đúp lên controlhoặc chọn View Code từ cửa sổ Project Explorer.
Private Sub Command1_Click ()
Text1.Text = "Hello, world!"
Trang 22Ph¸t triÓn øng dông víi VB6
2.7Làm việc với Project
Một project (dự án) trong Visual Basic thường bao gồm:
Một file dự án quản lý tất các thành phần của chương trình
Một file cho mỗi form (*.frm)
Một file dạng nhị phân cho mỗi form chứa các thông tin về form
Trang 232.7.2 Tạo, mở, lưu trữ một project
Bằng cách sử dụng các lệnh sau:
New Project Đóng project hiện tại; Tạo 1 project mới
Open Project Đóng project hiện tại; Mở 1 project có sẵn
Save Project Lưu trữ, cập nhật file project, cũng như mọi file
thành phần của nó
Save Project As Lưu file project với tên mới được nhập vào
2.7.3 Đặt tuỳ chọn cho Project
Bằng cách sử dụng hội thoại Project Properties,
từ mục chọn Project Properties trên thực đơn
Project
Trang 24Ph¸t triÓn øng dông víi VB6
Startup Object
Form đầu tiên mà Visual Basic sẽ gọi, hay thủ tục đặc biệt Sub Main( )
Project Help Context
ID
Mã ngữ cảnh (context ID)
Ngoài những tuỳ chọn trên, mỗi project còn có nhiều tuỳ chọn khácnữa
Trang 25 Tab order (Thứ tự Tab)
Dialog box (hộp hội thoại)
Trang 26Quả bóng bay là 1 đối tượng Nó có các thuộc tính như các thuộc tính
trực quan: “độ cao”, “đường kính”, “màu sắc” Các thuộc tính khác như
thuộc tính mô tả trạng thái quả bóng (“căng tròn” hay chưa), hay cácthuộc tính khác như thời gian sản xuất Mọi quả bóng bay đều có đầy
đủ tập thuộc tính trên; nhưng với mỗi quả bóng, giá trị cụ thể cácthuộc tính đó là khác nhau
Quả bóng bay có sẵn các phương thức hay hành động mà nó có thểthực hiện Nó có phương thức: “bơm” (hành động bơm hơi vào quảbóng), “xì” (xì hơi chứa bên trong), “bay” (bay lên cao nếu được thảra)
Quả bóng bay cũng có sẵn cách trả lời cho những sự kiện bên ngoàinhất định Ví dụ: 1 quả bóng sẽ đáp ứng lại sự kiện bị châm thủngbằng cách xì hơi, hay sự kiện được thả ra bằng cách bay cao
Nếu lập trình 1 quả bóng, đoạn mã lệnh trong Visual Basic sẽ có dạngsau:
Balloon.Color = Red
Balloon.Diameter = 10
Balloon.Inflated = True
Trang 27Chú ý cú pháp: đối tượng (Balloon) theo sau bởi thuộc tính (.Color)được gán giá trị (Red) Chúng ta có thể thay đổi thuộc tính 1 đối tượngbằng mã lệnh như trên khi chạy chương trình, hay từ cửa sổProperties khi thiết kế.
Phương thức của 1 quả bóng có thể được gọi như sau:
Chúng ta không thực sự có thể lập trình 1 quả bóng bay Nhưng thực
sự, chúng ta lập trình với form và control trong Visual Basic theo cáchtương tự
Trang 28Form vµ Control
3.2Form
Đối tượng form là thành phần cơ sở của 1 chương trình viết bằng
Visual Basic, là cửa số giao diện với người dùng Form có thuộc tính, sự kiện, phương thức
Bước đầu tiên trong thiết kế form là đặt giá trị các thuộc tính Thuộc
tính có thể đặt giá trị tại thời điểm thiết kế (design time) bằng tay,
hay khi chạy chương trình (run time) bằng mã lệnh.
3.2.1 Đặt giá trị thuộc tính cho form
Form có nhiều thuộc tính qui định hình thức như: Caption,
Icon, MaxButton, MinButton, BorderStyle, Height, Width,Left, Top, WindowState,
Thuộc tính Name đặt tên cho form - đó là tên biến được sử dụng để
thao tác với form khi lập trình (ví dụ: frmEntry)
Chúng ta có thể tìm hiểu về từng thuộc tính bằng cách chọn thuộc tínhrồi nhấn F1 để hiển thị trợ giúp ngữ cảnh
Trang 293.2.2 Phương thức và sự kiện của form
Như mọi đối tượng, form thực hiện các phương thức và đáp ứng các
sự kiện
Sự kiện Resize được kích hoạt khi kích cỡ form bị thay đổi
Sự kiện Activate được kích hoạt khi form được gọi
Deactivate được gọi khi 1 form hay 1 ứng dụng khác đượcgọi
Để làm 1 form xuất hiện, sự dụng phương thức Show
Trang 30Form vµ Control
3.3Command button
Command button (nút lệnh) cho phép người sử dụng nhấn vào để
thực hiện 1 hành động Khi người dùng nhấn vào nút lệnh, thủ tục sự
kiện Click được gọi Lập trình viên viết lệnh vào thủ tục sự kiện Click để thực hiện hành động mong muốn.
Có nhiều cách để chọn 1 command button:
Nhấn chuột vào command button
Dùng phím Tab chuyển tới command button, rồi ấn SPACEBAR
hay ENTER
Nhấn <ALT+ chữ cái được gạch chân>
Dùng mã lệnh thay đổi thuộc tính Value:
cmdClose.Value = True
Gọi thủ tục sự kiện Click:
cmdClose_Click
Nếu command button là command button mặc định trên form,
nhấn ENTER khi không có nút lệnh nào đang được chọn Lúcthiết kế, chúng ta đặt command button mặc định bằng cách thay
đổi giá trị thuộc tính Default thành True.
Nếu command button là Cancel button mặc định trên form, nhấn
ESC Lúc thiết kế, chúng ta đặt Cancel button mặc định bằng
cách thay đổi giá trị thuộc tính Cancel mặc định thành True
Tất cả các cách trên khiến Visual Basic gọi thủ tục sự kiện Click
Trang 31Label (nhãn) hiển thị văn bản mà người dùng không thể trực tiếp thayđổi Ta có thể sử dụng label để định danh các control không có thuộctính Caption, chẳng hạn text box và scroll bar Văn bản được hiển thị
trong một label được điều khiển bởi thuộc tính Caption, thuộc tính này
có thể được đặt khi thiết kế tại cửa sổ Properties hay khi chạy bằngcách gán trị cho nó trong mã chương trình
Mặc định, caption là phần duy nhất nhìn thấy được của label Ngoài
ra, các thuộc tính khác, như BackColor, BackStyle, ForeColor, và
Font, quy định hiển thị của label
Labels có 2 thuộc tính giúp văn bản trong nó phù hợp với kích cỡ của:
AutoSize and WordWrap.
Đặt AutoSize=True khiến nhãn tự thay đổi kích cỡ để vừa với nội dungtrong thuộc tính Caption
WordWrap khiến lable thay đổi kích cỡ theo chiều dọc để chứa hếtvăn bản
Trang 32Form vµ Control
Chú ý: WordWrap chỉ có hiệu lực khi AutoSize cũng đã được đặt
là True.
Trang 333.5Text box
Text box (hộp soạn thảo) dùng để nhập dữ liệu từ người dùng hayhiển thị dữ liệu Tuy nhiên, không nên dùng Textbox để hiển thị dữ liệukhông được thay đổi bởi người dùng nếu như không đặt thuộc tính
Locked là True.
Văn bản thực sự hiển thị được lưu trong thuộc tính Text Chúng
ta có thể đặt văn bản vào textbox hay đọc nội dung qua thuộc tính
Text này.
Các thuộc tính MultiLine, ScrollBars và
WordWrap giúp hiển thị văn bản trong Textbox khi có nhiều dòng
Private Sub Form_Load ()
Text1.Text = "Here are two lines" _
& vbCrLf & "in a text box"
End Sub
Trong thủ tục trên, vbCrLf là hằng số khiến chuỗi chia thành 2dòng
Chú ý: để WordWrap có hiệu lực, Multiple cũng cần có hiệu lực
Các thuộc tính SelStart, SelLength và SelText giúp điềukhiển việc lựa chọn 1 phần văn bản hộp textbox
Trang 34Form vµ Control
Trang 353.6Check box
Check box (hộp đánh dấu) được dùng để đưa ra lựa chọn đúng/sai,có/không cho người sử dụng
3.6.1 Chương trình ví dụ về Check box
Giao diện chương trình gồm text box, label, command button, và 2 check box
Trang 36Form vµ Control
Danh sách đối tượng và thuộc tính đặt như sau:
Caption
frmCheckCheck Box Example
Text
txtDisplaySome sample textCheck box 1 Name
Caption
chkBold
&BoldCheck box 2 Name
Caption
chkItalic
&ItalicCommand button Name
Caption
cmdClose
&Close
Mã lệnh các thủ tục sự kiện:
Private Sub chkBold_Click ()
If ChkBold.Value = vbChecked Then ' If checked.
Private Sub chkItalic_Click ()
If ChkItalic.Value = vbChecked Then ' If checked.
Private Sub CmdClose_Click()
End
End Sub
Trang 373.7Option Button và nhóm Option Button
Option button (nút tuỳ chọn) được dùng theo nhóm được cho phépngười dùng chọn 1 trong số nhiều lựa chọn
3.7.1 Tạo nhóm Option Button
Tất các option button được đặt trực tiếp lên form tạo thành 1 nhóm.Nếu muốn tạo thêm các nhóm, những option button thuộc nhóm mớiphải được cùng đặt trong 1 frame box hay picture box
Người dùng chỉ có thể chọn 1 tuỳ chọn trong mỗi nhóm
Trang 38Form vµ Control
Nhóm các control trong 1 frame
1 Chọn frame control trên toolbox và vẽ lên form
2 Chọn option button control trên toolbox vẽ vào trong frame
3 Làm lại bước 2 cho mỗi option button cần đặt trong frame
Nếu chúng ta đã có sẵn các control muốn nhóm gộp vào trong 1frame, hãy chọn các control đó rồi cắt và dán chúng vào trong framehay picture control
Đối tượng chứa các control
Tuy mỗi control và 1 đối tượng độc lập, quan hệ cha-con tồn tại giữaform và control Ví dụ: các option button được chứa trong 1 frame, vàframe này được chứa trong 1 form
Thực sự, mỗi khi vẽ 1 control lên form, mỗi control thường chứa 1thuộc tính Parent chỉ tới form mà control được đặt trên
Các thuộc tính Left và Top chẳng hạn sẽ xác định vị trí tương đối củacontrol trong form cha
3.7.2 Chương trình ví dụ về Options
Xây dựng chương trình với giao diện:
Trang 39Bảng các đối tượng và thuộc tính:
Caption
LblDisplay(Empty)Command button Name
Caption
CmdClose
&CloseOption button 1 Name
Caption
opt486
&486Option button 2 Name
Caption Value
opt586
&Pentium True
Option button 3 Name
Caption
opt686P&entium Pro
Caption
fraSystem
&Operating SystemOption button 4 Name
Caption
optWin95Windows 95Option button 5 Name
Caption Value
optWinNTWindows NT True
lblDisplay.Caption = "You selected a " & _
strComputer & " running " & strSystem
End Sub
Trang 40Form vµ Control
3.8List box và Combo box
Listbox (hộp danh sách) và combo box (hộp kéo thả) sử dụng để liệt
kê các lựa chọn cho người dùng
Listbox và combox, khác với text box, chứa nhiều giá trị Hai control này có sẵn các phương thức
để thêm, bớt, lấy giá trị từ chúng Đoạn lệnh sau thêm 3 giá trị và 1 listbox:
lstCity.AddItem "Paris"
lstCity.AddItem "New York"
lstCity.AddItem "San Francisco"