Bài giảng Lập trình Windows Visual Basic
Chương 1. Giới thiệu chung
Chương 2. C|c đối tượng trong Visual Basic
Chương 3. Kiểu dữ liệu, hằng, biến v{ mảng
Chương 4. C|c cấu trúc điều khiển
Chương 5. C|c lệnh v{ h{m căn bản
Chương 6. Thủ tục v{ h{m
Chương 7. C|c điều khiển hình ảnh, timer, duyệt file, thư mục.
Chương 8. Sử dụng menu, toolbar v{ hộp thoại
Chương 9. Xử lý tệp tin
Chương 10. Ứng dụng dạng MDI
Chương 11. Lập trình Cơ sở dữ liệu
Chương 10
Chương trình nhiều Form
PNH-HUT285
Nội dung
10.1. Chương trình nhiều Form
10.2. Ứng dụng MDI Form
PNH-HUT286
10.1. Chương trình nhiều Form
Thêm Form v{o ứng dụng:
Project/AddForm
PNH-HUT287
Biến, thủ tục trong chương trình nhiều form
Khai b|o to{n cục để sử dụng trong form
kh|c. Ví dụ:
Public V as integer
Public Sub1()
…
End Sub
Sử dụng. Ví dụ:
Form2.v=100 ‘G|n gi| trị 1000 v{o biến V được
khai báo trong Form2
Form2.sub1
PNH-HUT288
9/14/2011
73
Truy xuất đối tượng trong Form kh|c
Kèm theo tên Form chứa đối tượng:
Ví dụ:
Form2.text1.text=”DurianGroup”
Form2.shape.Fillcolor=QBColor(Rnd() * 10)
Từ khóa Me: Từ khóa n{y có dùng để thay
thế cho tên Form trong c|c c}u lệnh được
viết trong Form n{y
PNH-HUT289
Qui định Form hiện trước
Chọn menu Project /Project properties
Tab General:
Chọn tên Form
Startup Object
PNH-HUT290
10.2. Ứng dụng MDIFrom
Kh|i niệm MDI:
MDI (Multiple Document Interface), giao diện
có nhiều cửa sổ t{i liệu
Sử dụng trong hầu hết c|c ứng dụng Microsoft
Office (Word, Excel, Access, PowerPoint), và các
ứng dụng kh|c của Window.
Biểu mẫu MDI cho phép nhóm nhiều biểu mẫu
v{ chức năng trong một cửa sổ lớn.
MDI phù hợp với c|c ứng dụng cần l{m việc với
nhiều t{i liệu cùng lúc.
PNH-HUT291
10.2. Ứng dụng MDIForm
Đặc điểm:
MDIForm l{ một biểu mẫu chuẩn có những
điểm đặc biệt kh|c với c|c biểu mẫu thông
thường.
Chỉ có thể tạo một MDIForm cho mỗi ứng dụng,
vì đ}y l{ biểu mẫu cha, chứa c|c biểu mẫu con
khác.
PNH-HUT292
9/14/2011
74
10.2. Ứng dụng MDI Form – Đặc điểm
Hầu hết c|c điều khiển sẽ không đặt trực tiếp được
v{o giao diện MDIForm.
Được phép:
Thiết kế menu
Chứa c|c điều khiển không có thể hiện khi chạy (Timer,
CommonDialog).
C|c điều khiển hỗ trợ căn chỉnh Align (PictureBox,
Toolbar, StatusBar).
Để đặt c|c điều khiển kh|c, hoặc hiển thị ký tự,
hình ảnh cần dùng điều khiển chứa chúng (thường
dùng PictureBox).
PNH-HUT293
10.2. Ứng dụng MDIForm – C|ch tạo
Mở Project/Add MDI Form. Sau khi tạo MDIForm
th{nh công, dòng n{y sẽ mờ đi, không cho phép
thêm MDIForm n{o nữa.
Hình ảnh:
PNH-HUT294
Biểu mẫu MDIChild
Một biểu mẫu MDIForm chứa một hoặc nhiều biểu
mẫu con. Để tạo c|c biểu mẫu con, thêm biểu mẫu
v{o dự |n v{ thiết lập thuộc tính MDIChild của nó
gi| trị True.
Khi được thiết lập l{ MDIChild, biểu tượng của
form trong cửa sổ Project Explorer sẽ thay đổi.
Mặc định nó l{ form con của MDIForm (mỗi
project chỉ có một form cha).
PNH-HUT295
Biểu mẫu MDIChild
Form MDI con nằm bên trong MDI cha. Nếu một
Form MDI con được chọn l{ form khởi động trong
ứng dụng thì Form MDI cha sẽ được nạp tự động
v{ hiển thị trước khi hiện form con. C|c thể hiện
của form MDI con được tạo ra sử dụng từ khóa
New
‘Inside the MDIForm module
Private Sub mnuFileNew_Click()
Dim frmDoc As New frmDocument
frmDoc.Show
End Sub
PNH-HUT296
9/14/2011
75
Tạo Instance của biểu mẫu
Sử dụng biến đối tượng để tạo ra những bản sao
của một biểu mẫu.
Từng bản sao có c|c điều khiển v{ menu như nhau,
nhưng có những dữ liệu kh|c nhau. Mặc dù
chương trình cũng như tên biến v{ tên điều khiển
như nhau, nhưng dữ liệu được chứa ở những nơi
kh|c nhau trong bộ nhớ.
PNH-HUT297
Tạo danh s|ch cửa sổ
Phương thức Arrange của MDIForm (không có
trong form thông thường) cung cấp c|c c|ch thức
sắp xếp c|c form con (MDIChild) trong ứng dụng
MDI.
C|c kiểu sắp xếp do VB cung cấp:
PNH-HUT298
Giá trị Hằng Mô tả
0 vbCascade Sắp xếp các cửa sổ con theo kiểu thác nước trải từ
góc trái trên qua góc phải dưới.
1 vbTileHorizontal Dàn đều các cửa sổ con sao cho chúng chia màn
hình thành những dải ngang.
2 vbTileVertical Dàn đều các cửa sổ con sao cho chúng chia màn
hình thành những dải dọc.
3 vbArrangeIcons Các cửa sổ con được thu nhỏ thành các biểu
tượng và xếp thẳng hàng ở đáy cửa sổ cha.
Tạo danh s|ch cửa sổ
Để l{m những điều n{y, cần tạo ra một menu
Window với 4 lệnh: Tile Horizontally, Tile
Vertically, Cascade, and Arrange Icons.
Viết code cho mỗi th{nh phần menu:
‘Chọn xếp theo d{n h{ng ngang
Private Sub mnuTileHorizontally_Click()
Arrange vbTileHorizontal
End Sub
‘Chọn xếp theo d{n h{ng dọc
Private Sub mnuTileVertically_Click()
Arrange vbTileVertical
End Sub
PNH-HUT299
Tạo danh s|ch cửa sổ
Viết code cho mỗi th{nh phần menu (tiếp):
‘Chọn xếp theo kiểu th|c nước
Private Sub mnuCascade_Click()
Arrange vbCascade
End Sub
‘Chọn xếp theo kiểu thu nhỏ
Private Sub mnuArrangeIcons_Click()
Arrange vbArrangeIcons
End Sub
PNH-HUT300
9/14/2011
76
10.3. Ứng dụng MDI Notepad
B{i thực h{nh
Tạo mới thể hiện form con:
Dim frmDoc As New frmDocument
frmDoc.Show
Tham chiếu đến form con đang kích hoạt
(ActiveForm):
Me.ActiveForm
PNH-HUT301
Ứng dụng Notepad MDI
Tạo mới thể hiện Form con
PNH-HUT302
Private Sub menuNew_Click()
Dim frmDoc As frmDocument „Ten form con
Static n As Integer „Bien tinh dem so the hien form con
Set frmDoc = New frmDocument
frmDoc.rtbEdit.Text = "" „Chứa rtbEdit
n = n + 1
frmDoc.Caption = "Document" & Format(n)
frmDoc.Show „Hien the hien form con
End Sub
Ứng dụng MDI Notepad
Kiểm tra nếu chưa có Form con n{o được mở
PNH-HUT303
If ActiveForm Is Nothing Then
Set frmDoc = New frmDocument
frmDoc.Caption = "Document 1"
frmDoc.Show
End If
Tham chiếu điều khiển trên form con đang active
Me.ActiveForm.TenDieuKhien
Xuất file văn bản
Filename: Tên file văn bản được mở
(qua OpenFileDialog)
PNH-HUT304
Open filename For Input As #1
Do While Not (EOF(1))
Line Input #1, s
Me.ActiveForm.rtbEdit.Text =
Me.ActiveForm.rtbEdit.Text & s & vbCrLf
Loop
Close #1
9/14/2011
77
Đóng c|c Form con
PNH-HUT305
Private Sub menuExit_Click()
Dim frmDoc As Form
'Thoat cac cua so con
For Each frmDoc In Forms
If TypeOf frmDoc Is frmDocument Then
Unload frmDoc
Set frmDoc = Nothing
End If
Next
'Thoat cua so cha
Unload Me
End Sub
Trò chơi Puzzle số
PNH-HUT306
Trò chơi Puzzle số
Di chuyển c|c ô số để được kết quả sắp
xếp cuối cùng
PNH-HUT307
Chương 11.
Lập trình Cơ sở dữ liệu
PNH-HUT308
9/14/2011
78
CSDL trong ứng dụng quản lý
Mô hình ứng dụng quản lý CSDL
PNH-HUT309
CSDL trong ứng dụng quản lý
C|c th{nh phần: (mô hình 3 lớp)
PNH-HUT310
Kỹ thuật ADODB trong VB6
ADODB (ActiveX Data Object DB)
Sử dụng:
PNH-HUT311
C|c đối tượng trong ADODB
Connection: Quản lý kết nối
Command
RecordSet
Field
Parameter
PNH-HUT312
9/14/2011
79
Kết nối Data Source
PNH-HUT313
Đối tượng Connection
PNH-HUT314
Đối tượng Connection
PNH-HUT315
Đối tượng Connection
PNH-HUT316
9/14/2011
80
Đối tượng Connection
PNH-HUT317
Đối tượng Connection
PNH-HUT318
Ví dụ Kết nối CSDL
PNH-HUT319
Đóng kết nối
PNH-HUT320
9/14/2011
81
Thao t|c dữ liệu
PNH-HUT321
Minh họa thao t|c dữ liệu
PNH-HUT322
Đối tượng Command
PNH-HUT323
Đối tượng Command
Thực hiện truy vấn Thêm (Insert), Cập nhật
(Update) tương tự
PNH-HUT324
9/14/2011
82
Đối tượng Command
Thực hiện c}u truy vấn SELECT
PNH-HUT325
„Khai báo đối tượng RecordSet để chứa kết quả
Dim rs As New ADODB.RecordSet
„Khai báo đối tượng Command
Dim cmd As New ADODB.Command
cmd.ActiveConnection = con „Kết nối đang mở
cmd.CommandText = câu truy vấn chọn
cmd.CommandType = adCmdText
„Thực hiện truy vấn
Set rs = cmd.Execute
Đối tượng RecordSet
Thực hiện c}u truy vấn SELECT
PNH-HUT326
„Khai báo đối tượng RecordSet
Dim rs As New ADODB.RecordSet
„Khai báo đối tượng Command
Dim cmd As New ADODB.Command
cmd.ActiveConnection = con „Kết nối đang mở
cmd.CommandText = câu truy vấn chọn
cmd.CommandType = adCmdText
„Thực hiện truy vấn chọn
rs.Open cmd
C|c phương thức duyệt bản ghi
Về đầu danh
sách:
rs.MoveFirst
Về cuối danh
sách:
rs.MoveLast
Bản ghi tiếp theo:
rs.MoveNext
Bản ghi trước:
rs.MovePrevious
PNH-HUT327
Đếm số bản ghi:
rs.RecordCount
Di chuyển đến bản ghi
có chỉ số index
rs.Move(index)
Đọc thông tin c|c trường bản ghi
Đối tượng rs (RecordSet) nắm dữ tập hợp c|c bản
ghi. Tại mỗi thời điểm, có một bản ghi được chọn.
Lấy thông tin c|c trường dữ liệu của một bản ghi:
rs.Fields(index) ‘Chỉ số trường tính từ 0
rs.Fields(“Tên trường”)
rs!Têntrường
PNH-HUT328
9/14/2011
83
Đối tượng RecordSet
PNH-HUT329
Tiếng Việt trong Visual Basic
PNH-HUT330
Tiếng Việt VB6
Bảng mã ANSI (ACII mở rộng), dùng đủ 8 bit với
256 ký tự, bao gồm cả 128 kí tự trong m~ ASCII
chuẩn. C|c kí tự sau l{ c|c phép to|n, c|c chữ có
dấu v{ c|c kí tự để trang trí.
(Mở công cụ Character Map của Window, chọn
font Fixedsys, trật tự c|c ký tự hiện ra ấy chính l{
bảng m~ ANSI)
VB6 chuẩn hoạt động với bảng m~ ANSI: Ta có
thể gõ trong môi trường code c|c ký tự HOA có
dấu sau: À Á Â Ã È É Ê Ì Í Ò Ó Ô Õ Ù Ú Ý kèm c|c
chữ thường.
PNH-HUT331
Tiếng Việt VB6
Môi trường chuẩn VB6 không hỗ trợ tiếng Việt
Unicode. Người ta thường dùng bảng m~ 1 byte
của Việt nam để thay thế.
Tiếng Việt cho điều khiển:
Thiết lập thuộc tính Font: Chọn kiểu Font Việt Nam 1
byte (.VnTime, .VnTimeH, …)
Sử dụng bộ gõ TCVN3, kiểu gõ Telex
Với môi trường Code:
* C|c ký tự có dấu phức tạp, ta dùng kèm h{m
ChrW, ví dụ từ 'lên lớp' : Msgbox "lên l" &
ChrW(7899) & "p“
Dùng Character Map để tra m~ những ký tự có dấu
PNH-HUT332
9/14/2011
84
Sử dụng điều khiển Unicode viết sẵn
Với C|c Control:
* Dùng c|c control do c|c t|c giả người Việt
viết sẵn, ví dụ dùng bộ
Unicode Full Controls của t|c giả DQHung
(UnicodeFullControls.ocx)
PNH-HUT333
Sử dụng điều khiển Unicode
Dùng bộ controls MS Form 2.0 của
Microsoft, chọn c|c font nhóm Unicode,
dùng hàm convert ChrW$() cho những ký
tự có dấu tiếng việt m{ VB không hỗ trợ.
PNH-HUT334
VB (version 2005, 2008, 2010)
Công nghệ .NET framework
Đ~ hỗ trợ tiếng Việt Unicode cả trên điều
khiển v{ môi trường code
Chọn kiểu gõ Unicode, Font chữ thường
dùng: Arial, Times New Roman, …
PNH-HUT335
File đính kèm:
Bài giảng Lập trình Windows Visual Basic.pdf

