Lập trình WindowsWindows: Hệ điều h{nh đồ họa trực quan GUI – Graphics User Interface, giao tiếp với người sử dụng qua giao diện đồ họa cửa sổ, nút bấm, hộp thoại, … C|c t{i nguy
Trang 1Lập trình Windows
Visual BasicViện CNTT&TT – Trường ĐHBK Hà Nội
Phạm Ngọc Hưng
Bộ môn Kỹ thuật M|y tính, Viện Công nghệ Thông tin & Truyền thông, Trường Đại học B|ch Khoa H{ Nội
Windows:
Lập trình giao diện đồ họa – người dùng (GUI)
Lập trình cơ sở dữ liệu
Sử dụng ActiveX, Component
(Visual Basic, Visual C++, Visual C#, NET)
6.0, 8.0 (2005), 9.0 (2008))
Thời lượng môn học
B{i giảng c|c vấn đề về lý thuyết
C|c b{i thực h{nh có hướng dẫn, b{i tập tự l{m
(Minh họa bằng VB6 hoặc VB2005/2008)
Trang 2Nội dung
T{i liệu tham khảo
Microsoft Visual Basic 6.0 và Lập trình Cơ sở dữ liệu
- Nguyễn Thị Ngọc Mai (chủ biên), Nh{ xuất bản Gi|o dục - 2000
Giáo trình thực hành Visual Basic 6.0 – Lâm Hoài
1.2 C|c control chuẩn của Windows
1.3 Giới thiệu về Visual Basic
1.4 Môi trường ph|t triển VB6
Trang 31.1 Lập trình Windows
Windows:
Hệ điều h{nh đồ họa trực quan (GUI – Graphics User
Interface), giao tiếp với người sử dụng qua giao diện đồ
họa (cửa sổ, nút bấm, hộp thoại, …)
C|c t{i nguyên hệ thống cung cấp rất đa dạng:
- C|c h{m thao t|c với tập tin, thư mục, ổ đĩa
- Giao tiếp với thiết bị phần cứng (m|y in, truyền thông
dùng thông qua giao diện đồ họa sẵn có của Windows
PNH-HUT
10
1.1 Lập trình Windows
giao diện tương t|c với người sử dụng
Thanh thực đơn có c|c mục File, Edit, Tool, Help, …
Hộp thoại chứa c|c phần điều khiển chung như: Edit
Box, Button, CheckBox, …
1.1 Lập trình Windows
trình đồ họa đa dạng, c|ch xử lý đa nhiệm, đa luồng (Visual Basic,Visual C#, Visual C++, …)
giúp x}y dựng những ứng dụng mạnh mẽ đa dạng, th}n thiện v{ dễ sử dụng
Trang 41.1 Lập trình Windows
Cần biết:
Kỹ năng lập trình cơ bản (C, C++, …)
Sử dụng công cụ lập trình trực quan (Visual)
Hiểu biết về Windows
Thẩm mỹ trình b{y hình ảnh, điều khiển, thiết
kế giao diện tiện lợi, rõ r{ng, th}n thiện
PNH-HUT
13
1.1 Lập trình Windows - API
dụng có thể sử dụng để truy cập c|c t{i nguyên trong hệ thống, gọi l{ giao diện lập trình ứng dụng
API (Application Programming Interface).
PNH-HUT
14
1.1 Lập trình Windows - API
DLL (Dynamic Link Library)
Khi biên dịch chương
lập của thiết bị đồ họa, gọi l{ giao diện thiết bị đồ họa GDI (Graphics Device Interface)
việc tốt với nhiều thiết bị đồ họa kh|c nhau
Trang 51.1 Lập trình Windows – Message
(event – driven), c|c ứng dụng liên tục chờ hệ điều
h{nh truyền sự kiện v{o
khi có dữ liệu nhập n{o đó được truyền đến
PNH-HUT
17
1.1 Lập trình Windows – Message
gọi h{m xử lý của cửa sổ tương ứng thông qua hình thức thông điệp (message)
thống
PNH-HUT
18
1.1 Lập trình Windows – Message
sự kiện nhập v{o (input even) Ví dụ: ấn phím, di
chuyển chuột, thanh cuộn, click nút bấm,…
ứng lại một sự thay đổi của hệ thống do một ứng
dụng mang đến Ví dụ: ứng dụng l{m cạn kiệt t{i
nguyên hay ứng dụng tự thay đổi kích thước của
cửa sổ
cần yêu cầu c|c cửa sổ của nó thực hiện một nhiệm
1.2 C|c Control chuẩn của Windows
Vùng hình chữ nhật trên m{n hình.
Ứng dụng hiển thị thông tin ra, nhận thông tin v{o.
Nhiệm vụ đầu tiên của ứng dụng đồ họa trên Windows
là tạo một cửa sổ.
Cửa sổ chia sẻ màn hình với các cửa sổ khác trong cùng ứng dụng hoặc các ứng dụng khác.
Tại một thời điểm chỉ có một cửa sổ nhận được
Trang 61.2 C|c Control chuẩn của Windows (tt)
Hộp thoại (Dialog) dùng để tương t|c với người dùng
trong một chương trình ứng dụng Một hộp thoại
thường chứa nhiều c|c đều khiển như:
• Ô nhập văn bản (edit text)
• Nút bấm (button)
• Ghi chú (static)
• Hộp danh s|ch liệt kê (list box)
• Hộp danh s|ch thả xuống (Combo box)
• Nút lựa chọn (Radio button)
• Nút kiểm (check button), …
PNH-HUT
21
1.2 C|c Control chuẩn của Windows (tt)
PNH-HUT
22
1.2 C|c Control chuẩn của Windows (tt)
Thực đơn (menu): l{ một danh s|ch chứa c|c thao t|c
với một định danh m{ người dùng có thể chọn Hầu hết
c|c ứng dụng có cửa sổ thì không thể thiếu thực đơn.
Thanh công cụ (toolbar): đ}y l{ một dạng menu nhưng
chỉ chứa c|c thao t|c cần thiết dưới dạng c|c biểu tượng
đặc trưng.
Ngo{i ra còn rất nhiều c|c điều khiển m{ c|c công cụ lập
trình cung cấp cho người lập trình hay tự họ tạo ra dựa
trên những th{nh phần được cung cấp sẵn.
1.3 Giới thiệu Visual Basic
nhanh chóng v{ đơn giản hóa lập trình ứng dụng trên Windows
Visual Basic ?
diện đồ họa người dùng GUI (Graphics User Interface)
dùng sắp đặt vị trí, thiết lập thuộc tính, trên một khung màn hình (form)
Trang 71.3 Giới thiệu Visual Basic
purpose Symbolic Instruction Code) Đơn giản, dễ
học, dễ sử dụng
dùng cho máy tính 8 bits 8080 hay Z80
h{m (functions) v{ từ khóa (keywords) Rất
nhiều commands, functions liên hệ trực tiếp đến
MSWindows GUI
PNH-HUT
25
1.3 Giới thiệu Visual Basic
Application (VBA) và VBScript
trình Word, Excel, MSAccess, MSProject, v.v còn gọi l{ Macros
VB 6.0: phương ph|p lập trình mới, thiên về đối tượng
(Object Oriented), thủ tục xử lý theo tình huống,
phương thức
VB 8.0 (2005) và VB 9.0 (2008), VB 2010 (.NET
1.4 Môi trường ph|t triển VB6
Project Explorer
Properties
Form Layout Form
ToolBox
Trang 81.4 Môi trường ph|t triển VB6
Chứa đầy đủ các commands sử dụng để l{m việc với
VB6, kể 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
Trong Menu Add-Ins có Add-Ins Manager cho phép gắn
thêm những menu con để chạy c|c chương trình lợi ích
cho việc lập trình
PNH-HUT
29
1.4 Môi trường ph|t triển VB6
Thanh công cụ chuẩn
Thanh công cụ gỡ rối (Debug)
Thanh công cụ soạn thảo (Edit)
PNH-HUT
30
1.4 Môi trường ph|t triển VB6
gọi l{ controls, đặt lên form trong lúc
Trang 91.4 Môi trường ph|t triển VB6
Liệt kê c|c đặc tính của c|c
forms hoặc controls đượ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
Dùng context command Resolution Guides để 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
PNH-HUT
34
1.4 Môi trường ph|t triển VB6
Dùng để thiết kế giao diện lập trình Mỗi form
trong trình ứng dụng của bạn có designer form
riêng của nó Khi maximize một form designer,
nó chiếm cả khu l{m việc Muốn l{m cho nó trở
lại cỡ bình thường v{ đồng thời để thấy c|c
form designers khác, click nút Restore Window
ở góc bên phải, phía trên
1.4 Môi trường ph|t triển VB6
Dùng để gỡ rối (debug) trình ứng dụng
Có thể hiện 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, có thể thay đổi gi|
trị c|c variables hay chạy một dòng chương trình
Trang 10Cấu trúc một chương trình VB
Trong VB, về cơ bản một chương trình ứng dụng
(project) sẽ chứa một hay nhiều Biểu mẫu giao tiếp
(Form) Ngo{i những m{n hình giao tiếp ra, ứng dụng
còn có thể có c|c thư viện (Module) lưu trữ c|c th{nh
phần dùng chung của to{n bộ ứng dụng như biến, thủ
Tập tin Biểu mẫu (.FRM): Tập tin văn bản chứa thông tin, c|c thủ tục xử lý biến cố, biến, thủ tục, h{m của một m{n hình giao tiếp
Tập tin thư viện (.BAS): Tập tin văn bản chứa khai b|o c|c hằng, biến to{n cục, c|c h{m thủ tục dùng chung của to{n bộ ứng dụng
Trang 11Form – Biểu mẫu
của ứng dụng)
giao diện chương trình
Controls – C|c điều khiển
C|c th{nh phần có sẵn, tạo giao diện tương t|c với người sử dụng
Mỗi điều khiển thực chất l{ một đối tượng (object), gồm c|c đặc trưng:
- Thuộc tính (properties)
- Phương thức (method)
- Sự kiện (event)
Trang 12Thuộc tính – Properties
C|c đặc trưng của điều khiển tạo nên d|ng
vẻ của điều khiển đó.
Trang 13C|c th{nh phần giao diện có khả năng nhận biết
sự kiện từ phía người dùng Tuy nhiên khả năng đ|p ứng lại sự kiện phải được thực hiện bởi lập trình
X|c định h{nh động của th{nh phần giao diện để đ|p ứng sự kiện cụ thể, viết đoạn m~ lệnh thực thi
Ví dụ: Sự kiện click chuột v{o nút được lập trình
để thực hiện công việc xử lý n{o đó
Chọn đối tượng (chuột tr|i)
Hoặc chuột phải v{o đối tượng,
chọn Properties
Hoặc chọn đối tượng trong hộp
combo box của cửa sổ
2.2 Sử dụng Properties Window
được liệt kê theo bảng gồm 2 cột:
Thẻ Alpabetic: Xem c|c thuộc
tính theo thứ tự abc
Thẻ Categorized: Xem c|c thuộc
tính theo phân nhóm (Appearance, Behavior, Font, …)
Tên, kiểu thuộc tính Giá trị tương ứng
Trang 142.2 Sử dụng Properties Window
Có ở tất cả c|c đối tượng, để x|c định tên đối
tượng
Quan trọng trong nhiều trường hợp: lấy/hiện
dữ liệu, xử lý tương t|c sự kiện, …
Dùng để truy xuất đến c|c thuộc tính kh|c
Qui tắc đặt tên:
• D{i từ 1 – 40 ký tự
• Bắt đầu bằng ký tự chữ
• Nên đặt theo viết tắt loại đối tượng + gợi nhớ chức
năng để tiện lập trình Ví dụ: frmLogin, btnThoat,
<Tên điều khiển>.<Tên thuộc tính>
Ví dụ: btnThoat.Visiable = False
<Tên điều khiển>.<Tên phương thức>[(<c|c
tham số nếu có>)]
Ví dụ: img.Move(x,y)
PNH-HUT
54
2.4 Một số đối tượng cơ bản
phục vụ x}y dựng ứng dụng
c|c điều khiển (Controls)
Name: Định danh biểu mẫu, truy xuất đến thuộc tính
kh|c, v{ phương thức thao t|c trên biểu mẫu.
Caption: Chuỗi hiển thị trên thanh tiêu đề biểu mẫu
Icon: Biểu tượng dùng trên thanh tiêu đề của biểu mẫu.
Trang 152.4.1 Biểu mẫu - Form
Thuộc tính (tiếp):
Windowstate: x|c định biểu mẫu sẽ có kích thước bình
thường (Normal=0), hay Minimized (=1), Maximized
=(2)
Font: x|c lập Font cho biểu mẫu Thuộc tính n{y sẽ
được c|c điều khiển nằm trên nó thừa kế Tức l{ khi ta
đặt một điều khiển lên biểu mẫu, thuộc tính Font của
điều khiển ấy sẽ tự động trở nên giống y của biểu mẫu
BorderStyle: x|c định dạng của biểu mẫu.
Form_Initialize: xảy ra đầu tiên, 1 lần khi tạo ra
thể hiện biểu mẫu
Nh~n l{ điều khiển dạng đồ họa cho phép người sử dụng
hiển thị chuỗi ký tự trên biểu mẫu nhưng không thể
thay đổi chuỗi ký tự đó một c|ch trực tiếp.
Thuộc tính:
Name: Định danh cho điều khiển
Caption: Chuỗi ký tự hiển thị (mặc định l{ Label)
Font, Fore Color: kiểu chữ, kích thước, m{u chữ.
BackStyle: quy định l{ nh~n trong suốt hay không
BackColor: quy định m{u nền của nh~n trong trường
hợp không trong suốt
Trang 16kiện n{y xảy ra
chuột lên điều khiển nh~n
PNH-HUT
62
2.4.3 Khung - Frame
Bố trí giao diện biểu mẫu rõ r{ng
C|c điều khiển cùng nhóm công việc thường đặt
Caption: chuỗi hiển thị trên nút lệnh
Default: nếu = True, cho chọn nút lệnh bằng phím Enter.
Cancel: nếu = True, cho chọn nút lệnh bằng phím Esc.
Enabled: cho chọn (True) hoặc không cho chọn (False)
nút lệnh.
Trang 1765
2.4.4 Nút lệnh - Button
Thuộc tính (tiếp):
ToolTipText: cho phép hiển thị một đoạn văn bản chú
thích công dụng của nút lệnh khi dùng chuột rê trên nút nhấn
Font, Fore Color: Quy định kiểu chữ, kích thước, m{u
hiển thị
Phương thức:
Move x,y
Sự kiện:
Click: thường dùng Được kích hoạt khi chọn nút lệnh.
Người lập trình viết m~ lệnh cho sự kiện n{y.
Name: định danh cho điều khiển.
Text: Dùng để nhập v{o thông tin cần hiển thị trong
Textbox tại thời điểm thiết kế hoặc nhận gi| trị do người dùng nhập v{o tại thời điểm chạy ứng dụng.
Trang 182.4.5 Ô nhập liệu – Textbox
Thuộc tính (tiếp):
Locked: có/không cho phép thay đổi nội dung ô nhập
liệu.
PasswordChar: qui định c|ch hiện ký tự nhập v{o,
dùng khi muốn che giấu
Multiline: có/không nhập theo nhiều h{ng.
Font, Fore Color: Quy định kiểu chữ, kích thước, m{u
phím Thường dùng nó để lọc (filter out) c|c phím không chấp nhận Sự kiện KeyPress cho ta một m~ Ascii, một số có gi| trị từ 0 đến 255, của phím vừa nhấn
ta một cặp sự kiện KeyDown/KeyUp Sự kiện KeyDown/KeyUp có 2 tham số l{ KeyCode v{
Shift Sự kiện n{y cho phép ta nhận biết được c|c phím đặc biệt trên b{n phím
Sort: List Box có sắp xếp hay không?
ListIndex: Vị trí của phần tử được lựa chọn trong List
Box
ListCount: Số phần tử của danh s|ch (tính từ 0 đến
ListCount -1)
Select(<Index>): cho biết phần tử thứ <Index> trong
List Box có được chọn hay không?
List: Danh s|ch c|c phần tử (nhập khi thiết kế) Ctrl + Enter
Trang 192.4.6 ListBox (tiếp)
Phương thức:
AddItem: Thêm một phần tử v{o List Box Cú ph|p:
<Name>.AddItem(Item As String, [Index])
- Name: tên danh sách
- Item: Phần tử (chuỗi) muốn thêm
- Index: Vị trí thêm v{o (tính từ 0) Nếu không có sẽ thêm
Kết hợp TextBox + ListBox, chọn bằng c|ch nhập v{o
chuỗi hoặc chọn từ một đề mục trong danh s|ch.
Chỉ gợi ý, đề nghị c|c lựa chọn (kh|c listbox giới hạn
trước c|c phần tử lựa chọn).
Biểu tượng:
Có 3 dạng (có thể chọn khi thiết kế):
Drop-down ComboBox 0 vbComboDropDown
Simple ComboBox 1 vbComboSimple
2.4.7 Combo Box (tiếp)
Trang 20điều khiển nhất định được chọn.
Trang 212.5 Viết lệnh cho đối tượng
cho c|c đối tượng
2.5.Viết code cho đối tượng
Chương 3 Kiểu dữ liệu, hằng, biến, v{ mảng
Trang 2286
Kiểu Kích thước Mô tả
Boolean 2 byte Gồm 2 giá trị True và False Byte 1 byte Các giá trị số nguyên từ 0 … 255 Integer 2 byte Các giá trị số nguyên từ -32768 đến 32767 Long 4 byte Các giá trị số nguyên từ -2147483648 –
2147483647 Kiểu dữ liệu số nguyên dài (4 byte)
3.1 Kiểu dữ liệu
C|c kiểu dữ liệu cơ sở trong VB (tiếp):
Kiểu Kích thước Mô tả
Single 4 byte Các giá trị số thực từ -3.402823E+38 – 3.402823E+38
Kiểu dữ liệu số thực độ chính xác đơn.
Double 8 byte Các giá trị số thực từ 1.79769313486232E+308
-1.79769313486232E+308 Kiểu dữ liệu số thực độ chính xác kép.
Currency 8 byte Dữ liệu tiền tệ chứa các giá trị số từ
Date 8 byte Dữ liệu kiểu ngày tháng, giá trị được đặt giữa cặp dấu ##
Việc định dạng hiển thị tùy thuộc vào việc thiết lập trong Control Panel.
Variant Chứa mọi giá trị của các kiểu dữ liệu khác, kể cả mảng.
3.1 Kiểu dữ liệu
Trang 233.2 Biến
Kh|i niệm:
Biến (Variable) l{ vùng lưu trữ được đặt tên để chứa dữ
liệu tạm thời trong qu| trình tính to|n, so s|nh v{ c|c
công việc kh|c
2 đặc điểm:
• Mỗi biến có một tên
• Mỗi biến có thể chứa duy nhất một loại dữ liệu
Tên biến: đặt giống qui tắc đặt tên điều khiển
Khai b|o biến (tiếp):
Khai báo ngầm: Không cần khai b|o biến trước khi
dùng (Tiện nhưng dễ sai sót).
Khai báo tường minh: qui định VB b|o lỗi khi gặp biến
chưa khai b|o Dùng lệnh:
• Option Explicit trong phần Declaration (khai b|o) của mô-đun
• Chỉ có t|c dụng trên từng mô-đun.
3.3 Hằng số - Constant
Trang 24Biểu thức (Expression): l{ tập hợp c|c to|n
hạng v{ c|c to|n tử kết hợp lại với nhau theo
quy tắc nhất định để tính to|n ra một gi| trị n{o
Trang 253.5 C|c kiểu dữ liệu có cấu trúc
String: Khai b|o không chỉ ra độ d{i tối đa, mặc định d{i 65500 ký tự
Ví dụ:
• Dim Name As String * 30, Class As String * 10
• Dim A As String
Trang 263.5.2 Kiểu ng{y th|ng - Date
hai dấu # (hoặc cặp “”)
Dim D As Date
D = #01/02/98# ‘ Hay “01/02/98”
MsgBox "NOW IS " & Format (Now, "ddd dd-mmm-yyyy
cả kiểu mảng, kiểu do người dùng định nghĩa nhưng ngoại trừ kiểu chuỗi có độ d{i cố định
như Empty, Nothing, Error, Null
Mảng sẽ có biên trên v{ biên dưới, trong đó c|c
th{nh phần của mảng l{ liên tiếp trong khoảng
giữa hai biên n{y
Có hai loại biến mảng: mảng có chiều d{i cố định
v{ mảng có chiều d{i thay đổi lúc thi h{nh
Trang 273.5.4 Kiểu mảng - array
Khai b|o (tiếp):
H{m UBound, LBound: trả về biên trên, biên dưới của
mảng.
Mảng nhiều chiều: Ví dụ:
Dim Multi3D (3, 1 To 10, 9) As Double
Khai báo một mảng 3 chiều với kích thước 4 x 10 x 10
Mảng động: có kích thước thay đổi, tiết kiệm t{i nguyên
hệ thống, có thể xóa khi không dùng.
Cú pháp: Dim <Tên mảng> () [As <Kiểu>]
Ví dụ: Dim DynArray() As Integer
Chú ý: tương thích, cho mảng khai b|o động
Khi gọi h{m trả về mảng, biến giữ gi| trị trả về phải l{
một mảng v{ có kiểu như kiểu của h{m
3.5.5 Kiểu mẩu tin
Cú pháp:
Type <tên kiểu>
<Tên trường 1> : <Kiểu trường 1>
<Tên trường 2> : <Kiểu trường 2>
Trang 283.5.5 Kiểu mẩu tin
<Tên biến mẩu tin>.<Tên trường>
Ví dụ: Khai b|o biến: Dim e As TEmployee
e.Salary = 300000.00
e.Age = 26
Câu lệnh With: sử dụng để viết gọn hơn khi thao t|c với
dữ liệu kiểu mẩu tin Cú ph|p:
With <Tên biến mẩu tin>
.<Tên trường> ‘truy xuất đến từng trường
.Salary = 300000.00 Age = 26
Trang 29If <điều kiện 1> Then [Khối lệnh 1]
ElseIf <điều kiện 2> Then [Khối lệnh 2]
[Else [Khối lệnh n]]
End If
PNH-HUT
114
4.2 Cấu trúc lựa chọn
Select Case <biểu thức kiểm tra>
Case <Danh s|ch kết quả biểu thức 1>
Cấu trúc lặp không x|c định trước số lần lặp
Số lần lặp được quyết định bởi biểu thức điều kiện (True hoặc False)
Trang 304.3 Cấu trúc lặp (2)
Kiểu 2:
Do
<khối lệnh>
Loop While <điều kiện>
Kiểm tra điều kiện sau
Khối lệnh được thực hiện ít nhất một lần
Kiểu 3:
Do Until <điều kiện>
<khối lệnh>
Loop
Tương tự cấu trúc Do While Loop
Kh|c: khối lệnh được thực hiện khi điều kiện sai
Loop Until <điều kiện>
Lặp lại khối lệnh cho đến khi điều kiện đúng.
Biến đếm, điểm đầu, điểm cuối l{ gi| trị số
Bước nhảy có thể }m hoặc dương Không dùng thì mặc định l{ 1
Trang 31For Each … Next:
Tương tự For … Next nhưng lặp theo số phần tử của một tập đối tượng hay một mảng.
• Phần tử trong mảng chỉ có thể l{ biến Variant.
• Không dùng For Each Next với mảng chứa kiểu tự định nghĩa
vì Variant không chứa kiểu tự định nghĩa
PNH-HUT
122
4.4 Nh~n lệnh (1)
Nh~n l{ tên g|n cho một đoạn chỉ thị lệnh bất kỳ
trong chương trình Khi thực hiện đoạn lệnh
n{y chỉ cần nhảy tới nh~n đó
Mỗi nh~n dùng trong một Form, đối tượng l{
Ví dụ: ON stt GOTO nhan1, nhan2, nhan3
Trang 324.5 Bẫy lỗi v{ xử lý lỗi
được hết
On Error GoTo <Tên nhãn>
<C|c c}u lệnh có thể g}y ra lỗi>
Ý nghĩa: Nếu xảy ra lỗi trong <c|c c}u lệnh xảy
ra lỗi> thi chương trình sẽ nhảy tới lệnh bên
dưới <Tên nh~n> để thực thi
Dạng 2:
On Error Resume Next
<C|c c}u lệnh có thể g}y ra lỗi>
Ý nghĩa: Nếu một lệnh trong <C|c c}u lệnh có
thể g}y ra lỗi> thì khi chương trình thực thi đến
c}u lệnh đó, sẽ tự động bỏ qua c}u lệnh bị lỗi v{
thực thi c}u lệnh kế tiếp
4.5 Bẫy lỗi – Ví dụ
On Error Goto myErr
Dim InputData Open "C:\arrays.cs" For Input As #1
Do While Not EOF(1) Line Input #1, InputData Debug.Print InputData Loop
Close #1
Exit Sub
myErr:
Debug.Print Error(Err.Number) End Sub
Trang 331 C}u lệnh: Exit For
Lồng v{o trong vòng lặp For khi muốn dừng lại
i = i + 1
Trang 345.1 C|c lệnh cơ bản
3 C}u lệnh: Exit Sub
Tho|t khỏi thủ tục m{ bất cứ lúc n{o m{ không
cần thực hiện c|c lệnh bên trong nó
'dat lai ngay hien tai cho he thong:
MyDate = #February 12, 1985# ' Assign a
Trang 355.1 C|c lệnh cơ bản (tiếp)
8 Lệnh: Load
Nạp 1 form (dùng nó để mở 1 Form)
Cú pháp : Load <Tên Form>
Để l{m xuất hiện hoặc ẩn đi sử dụng phương thức
MyNumber = Abs(50.3) ' Returns 50.3
MyNumber = Abs( - 50.3) ' Returns 50.3
End Sub
5.2.1 C|c h{m số học
2 Hàm Sin (Number as Double)
Trả về một số thực l{ Sin của một góc (tính bằng đơn vị Radian)
3 Hàm Cos (Number as Double)
Trả về một số thực l{ Cos của một góc (tính bằng đơn vị Radian)
4 Hàm Tan (Number as Double)
Trả về một số thực l{ Tan của một góc (tính bằng đơn vị Radian)
Trang 365.2.1 C|c h{m số học
5 Hàm Atn(Number): Lấy arctan của số number
6 Hàm Int (Number):
Trả về phần nguyên của Number nếu nó l{ số
dương, còn nếu số }m thì có gi| trị nhỏ hơn phần
nguyên 1 đơn vị
7 Hàm Fix (Number)
Trả về phần nguyên của Number nếu nó l{ số
dương, còn nếu số }m thì có gi| trị lớn hơn phần
13 Hàm Rnd; (Gọi h{m Randomize trước)
Tạo 1 số ngẫu nhiên l{ 1 số thực từ 0 đến 1
Number*Rnd để tạo 1 số thực ngẫu nhiên từ 0 đến
Trả về ng{y trong NgayThangNam m{ bạn ghi
Ta thường sử dụng Day(Now) để lấy ng{y hệ
Trang 375.2.2 C|c h{m về thời gian
4 Hàm Year (NgayThangNam)
Trả về Năm trong NgayThangNam m{ bạn ghi
Ta thường sử dụng Year(Now) để lấy năm hệ
thống
5 Hàm Weekday (NgayThangNam)
Trả về ng{y thứ mấy trong tuần ứng với
NgayThangNam m{ bạn nhập v{o
Ta có thể sử dụng Weekday(Now) để lấy thứ của
ng{y hiện tại
PNH-HUT
145
5.2.2 C|c h{m về thời gian
6 Hàm Hour (ThoiGian)
Trả về giờ ứng với ThoiGian m{ bạn nhập v{o
Ta có thể sử dụng Hour(Now) để lấy giờ của hệ thống hiện tại
7 Hàm Minute (ThoiGian)
Trả về phút ứng với ThoiGian m{ bạn nhập v{o
Ta có thể sử dụng Minute(Now) để lấy phút của hệ thống hiện tại
8 Hàm Second (ThoiGian)
Trả về gi}y ứng với ThoiGian m{ bạn nhập v{o
Ta có thể sử dụng Second(Now) để lấy gi}y của hệ thống hiện tại
c= a & “ “ & b & “ Lap trinh Windows”
' c bây giờ là "Hello World Lap trinh Windows"
5.2.3 C|c h{m xử lý chuỗi (tt)
Len: Trả về chiều d{i chuỗi.
Ví dụ: Greeting = "Hi John!”
Dim iLen As Integer iLen = Len(Greeting) ' iLen bây giờ bằng 8
Left(String, Length): Trích chuỗi con từ đầu
chuỗi gốc
đuôi chuỗi gốc
con từ giữa chuỗi gốc
Trang 385.2.3 C|c h{m xử lý chuỗi (tt)
InStr ([start,] string1, string2 [, compare]): Tìm chuỗi con
trong chuỗi gốc Nếu h{m InStr trả về 0, nghĩa l{ không tìm
thấy
Trong đó: Start: vị trí bắt đầu tìm (null: Từ đầu chuỗi)
String1: chuỗi gốc, String2: chuỗi so s|nh.
Compare: kiểu so s|nh (vbTextCompare,
vbBinaryCompare).
Ví dụ: Dim KeyValuePair As String, Key As String
Dim Value As String
KeyValuePair = "BeatlesSong=Yesterday"
Pos = Instr(KeyValuePair, "=")
Key = Left(KeyValuePair, Pos-1)
Value = Mid(KeyValuePair, Pos+1)
PNH-HUT
149
5.2.3 C|c h{m xử lý chuỗi (tt)
Replace(Expression, find, replace[, start[, count[,
compare]]]) : Tìm v{ thay thế chuỗi
AnyString = "Hello World" 'Khoi tao
MyStr = Replace(AnyString, "Hel", "AAAAA", 1,
-1, vbTextCompare)
'Returns "AAAAAlo World"
MyStr = Replace(AnyString, "Wor", "BBB", 1, -1,
vbTextCompare)
'Returns "Hello BBBld"
5.2.3 C|c h{m xử lý chuỗi (tt)
LTrim (string) và RTrim(string): cắt tất cả c|c khoảng
trắng bên tr|i (bên phải của chuỗi)
Ucase(string): đổi chuỗi sang chuỗi gồm c|c ký tự l{ chữ
hoa.
Asc: cho m~ Ascii của một ký tự
Chr: trả về ký tự ứng với m~ Ascii được chỉ định
Trang 395.2.3 C|c h{m xử lý chuỗi (tt)
kiếm được tiến h{nh từ phải sang
Str: H{m đổi số sang chuỗi
PNH-HUT
153
5.2.4 H{m với tập tin, thư mục
1 ChDrive
Dùng để đổi ổ đĩa l{m việc
Cú ph|p : ChDrive <”Tên ổ đĩa :”>
Xóa 1 hay nhiều tập tin trên đĩa
Cú ph|p : KILL <”Đường dẫn đến tập tin”>
Ví dụ : Kill “D:\vinhphuoc.txt”
Kill “D:\*.txt”
5.2.4 H{m với thư mục, ổ đĩa
6 Name
Dùng để đổi tên tập tin
Cú pháp : Name <”Đường dẫn tập tin cần đổi tên”>
AS <”Đường dẫn v{ tên tệp mới”>
Ví dụ : Name “C:\Phuoc.txt” AS
“C:\VINHPHUOC91.txt”
Trang 405.2.5 Các hàm khác
1 Hàm Format (Value, format)
H{m n{y dùng để định dạng theo ý muốn
Value : Gi| trị cần định dạng
Format : C|c kí hiệu định dạng.
0 nếu có gi| trị thì thể hiện gi| trị đó, nếu không có thì ghi
số 0 Nêu số 0 ít hơn thì gi| trị vẫn được ghi đầy đủ
# : Thể hiện c|c gi| trị tương ứng, nếu kí tự số ở vị trí đó
không có thì bỏ qua, nếu # ít hơn thì gi| trị vẫn được ghi
đầy đủ.
$ : Dấu $ bạn có thể dùng chung với số 0 hay #
: Dấu ngăn c|ch phần thập ph}n
, : Dấu ngăn c|ch phần nghìn
% : Khi có kí hiệu phần trăm n{y trong đối số Format, con
số sẽ tự thêm % v{o sau
PNH-HUT
157
5.2.4 Các hàm khác
Hàm Format (Value, format) (tiếp)
dd/mm/yyyy : Định dạng Ng{y Th|ng Năm, với đối số Value = Now
hh:mm:ss AM/PM : Định dạng Giờ phút gi}y theo dạng, với đối số Value = Now
hh:mm:ss AM/PM dd/mm/yyyy : Định dạng Giờ phút gi}y vừa định dạng ng{y th|ng năm theo dạng, với đối số Value
= Now hh:mm : Định dạng chỉ có giờ v{ phút với Value=Now.
2 H{m IIF(<Điều kiện>, Truepart, Falsepart)
H{m n{y sẽ trả về gi| trị truepart nếu điều kiện
đúng v{ cho Falsepart khi điều kiện sai
H{m n{y l{ c|ch viết ngắn gọn của IF…END IF
Ví dụ txt1.text = IIF(x<5000000,”Lương bạn còn
thấp”,”Bạn đ~ có lương cao”)
Chương 6Thủ tục v{ h{m