Môn học: Kỹ thuật lập trình trên Windows
Cung cấp kỹ năng cơ bản trong lập trình trên
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
Hiểu biết về công nghệ lập trình của Microsoft
(Visual Basic, Visual C++, Visual C#, .NET)
Ngôn ngữ minh họa cụ thể: Visual Basic (Version
6.0, 8.0 (2005), 9.0 (2008))
84 trang |
Chia sẻ: Mr Hưng | Lượt xem: 778 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Lập trình Windows Visual Basic, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uốn cho User dùng Alt key để sử dụng
Menu, đ|nh thêm dấu & trước ký tự muốn trong
menu Caption. Thí dụ Alt-F sẽ thả xuống Menu của
Menu Command File.
PNH-HUT220
9/14/2011
56
8.1. Menu
Sử dụng Menu Editor:
Nếu đặt cho MenuItem &Open tên mnuOpen, thì
khi 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:
PNH-HUT221
8.1. Menu
Sử dụng Menu Editor:
C|i gạch ngang giữa MenuItems Close v{ Exit được
gọi l{ Menu Separator. Có thể tạo một Menu
Separator bằng c|ch cho Caption nó bằng dấu trừ (
- ).
PNH-HUT222
8.1. Menu
Sử dụng Menu Editor:
Có thể dùng Short Key để tạo phím tắt cho một
mục menu (ở mức con)
PNH-HUT223
8.1. Menu
Sử dụng Menu Editor:
Mặc định, c|c menuItem được Enabled v{ Visible. Lúc
thiết kế có thể cho MenuItem gi| trị khởi đầu của
Enabled v{ Visible bằng c|ch dùng Check boxes Enabled
và Visible.
Trong khi chạy program (at runtime), cũng có thể thay
đổi c|c values Enabled v{ Visible như sau:
mnuSave.Enabled = False
mnuOpen.Visible = False
Khi một MenuItem có Enabled=False thì nó bị mờ v{
user không dùng được.
PNH-HUT224
9/14/2011
57
8.1. Menu
Sử dụng Menu Editor:
Dùng c|c dấu mũi tên chỉ lên v{ xuống để di chuyển
MenuItem đã được chọn lên v{ xuống
Trong danh sách các MenuItems. 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.
PNH-HUT225
8.1. Menu – Popup menu
Menu |p dụng cho đúng tình huống (Context
menu) bằng một Mouse click (thường l{ chuột
phải).
Pop-Up menu thật ra l{ Drop-down menu của một
Menu Bar Command. Bình thường Menu Bar
Command ấy có thể visible hay invisible (t{ng
hình).
PNH-HUT226
8.1. Menu – Popup menu
PNH-HUT227
8.1. Menu – Popup menu
Code l{m cho Popup menu hiện lên được viết
trong Event Mousedown của một Object. Ví dụ của
sự kiện chuột phải lên Form:
PNH-HUT228
9/14/2011
58
8.2. Hộp thoại
Hộp thoại (Dialog Box): L{ một trong những c|ch
thức VB giao tiếp với người dùng.
Có 4 loại hộp thoại:
Hộp thông điệp (Message Box)
Hộp nhập (Input Box)
C|c hộp thoại thông dụng (Common Dialog)
Hộp thoại hiệu chỉnh (Custom Dialog)
Hộp thông điệp: Có 2 loại
Loại chỉ xuất thông b|o
Loại có tương t|c với người dùng (Nút phản hồi)
PNH-HUT229
8.2.1. Hộp thông điệp
Message Box
PNH-HUT230
8.2.1. Hộp thông điệp – loại 1
Loại chỉ xuất thông b|o, dùng MsgBox như một thủ
tục.
Cú pháp: MsgBox Prompt, Button, Title.
Trong đó:
Prompt: Chuỗi thông b|o sẽ hiển thị.
Button: C|c nút nhấn sẽ được hiển thị trên hộp thông
báo.
Title: Chuỗi hiển thị trên thanh tiêu đề của hộp thông
báo.
PNH-HUT231
8.2.1. Hộp thông điệp – loại 1
Loại chỉ xuất thông b|o, dùng MsgBox như một thủ
tục.
Ví dụ:
PNH-HUT232
9/14/2011
59
8.2.1. Hộp thông điệp – loại 1
Tùy theo tham số (button) truyền v{o MsgBox, sẽ
xuất hiện hộp thoại với những kiểu nút kh|c nhau.
Constant của c|c icons ta có thể dùng l{ vbCritical,
vbQuestion, vbExclamation và vbInformation.
PNH-HUT233
Hằng số Giá trị Ý nghĩa
vbOKOnly 0 Chỉ hiện nút OK
vbOKCancel 1 Hiện 2 nút OK và Cancel
vbAbortRetryIgnore 2 Hiện 3 nút Abort, Retry và Ignore
vbYesNoCancel 3 Hiện 3 nút Yes, No, Cancel
vbYesNo 4 Hiện 2 nút Yes, No
vbRetryCancel 5 Hiện 2 nút Retry, Cancel
8.2.1. Hộp thông điệp – loại 2
Loại tương t|c với người dùng, dùng MsgBox như một
h{m, khi nút n{o đó trên hộp thông b|o được ấn, sẽ
trả về gi| trị tương ứng.
Cú pháp: MsgBox (Prompt, Button, Title) As Integer
PNH-HUT234
Hằng số Giá trị Nút
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
8.2.1. Hộp thông điệp – loại 2
Ví dụ:
PNH-HUT235
8.2.1. Hộp thông điệp
Có thể hiển thị Text message trong Message Box
th{nh nhiều dòng bằng c|ch dùng Constant vbCrLf
(CarriageReturn v{ LineFeed) để đ|nh dấu những
chỗ ngắt khúc như sau:
PNH-HUT236
9/14/2011
60
8.2.2. C|c hộp thoại thông dụng
Có 6 loại hộp thoại thông dụng (Common dialog)
Mở tập tin (Open)
Lưu tập tin (Save)
Chọn mầu (Color)
Chọn font (Font)
In ấn (Print)
Trợ giúp (Help)
Khi thiết kế chỉ có một công cụ duy nhất
(CommonDialog).
PNH-HUT237
8.2.2. C|c hộp thoại thông dụng
Mở Project/Components/Controls/Microsoft
Common Dialog Control 6.0 để đưa công cụ n{y
vào toolbox.
PNH-HUT238
8.2.2. C|c hộp thoại thông dụng
Có 6 dạng Common Dialog, tùy từng Method để qui
định gọi loại n{o.
PNH-HUT239
Common Dialog Properties
PNH-HUT240
9/14/2011
61
Hộp thoại mở v{ lưu tập tin
Hai hộp thoại n{y có chức năng v{ thể hiện như
nhau.
Đều hiển thị danh s|ch c|c tập tin, có thể duyệt
qua c|c ổ đĩa để tìm tập tin.
Chỉ kh|c nhau phần tiêu đề v{ nút ấn
C|c thuộc tính quan trọng:
Name: tên của common dialog
Filter: Chuỗi x|c định phần mở rộng của tên tập tin m{
hộp thoại có thể mở hay lưu
FilterIndex: X|c định mặc định loại tập tin n{o được
chọn (dùng một số nguyên) nếu có nhiều loại phần mở
rộng của tệp tin được mô tả trong Filter.
PNH-HUT241
Hộp thoại mở v{ lưu tập tin
C|c thuộc tính quan trọng (tiếp):
FileName: Trả về tên tập tin sau khi lựa chọn một tệp
tin n{o đó
CancelError: Nếu True thì trả về lỗi khi chọn Cancel.
(Mặc định l{ False).
Phương thức
ShowOpen: Mở hộp thoại mở tập tin
ShowSave: Mở hộp loại lưu tập tin
PNH-HUT242
Hộp thoại mở v{ lưu tập tin
Thiết lập thuộc tính khi thiết kế (mở
properties của common dialog)
PNH-HUT243
Hộp thoại mở v{ lưu tập tin
Thuộc tính Filter lọc tập tin:
Có thể đặt khi thiết kế, hoặc viết lệnh
Ví dụ:
PNH-HUT244
9/14/2011
62
PNH-HUT245
Hộp thoại mở v{ lưu tập tin
Ví dụ: (thực h{nh)
PNH-HUT246
Hộp thoại mở v{ lưu tập tin
Ví dụ: (thực h{nh)
PNH-HUT247
Hộp thoại chọn m{u
Hiện thị bảng m{u có
sẵn của Windows, cho
phép chọn m{u hoặc
thiết lập thêm m{u
mới.
Dùng phương thức
ShowColor để hiển thị
hộp thoại chọn m{u.
Thuộc tính Color trả về
m{u được chọn.
PNH-HUT248
9/14/2011
63
Hộp thoại chọn m{u
Trong một số ứng dụng, ta sẽ dùng hộp thoại chọn
m{u để thay đổi gi| trị m{u của c|c điều khiển
trong một số trường hợp n{o đó.
Ví dụ (thực h{nh)
PNH-HUT249
Hộp thoại chọn m{u
txtEdit.SelColor = CommonDialog1.Color
PNH-HUT250
Hộp thoại chọn font chữ
Cho phép người dùng
chọn font m{n hình,
m|y in, hoặc cả 2.
Mở hộp thoại chọn
Font bằng phương
thức ShowFont
Thuộc tính Flags qui
định loại font n{o sẽ
được hiển thị.
PNH-HUT251
Hộp thoại chọn font chữ
C|c thuộc tính:
PNH-HUT252
Thuộc tính Giải thích
Color Lưu giữ giá trị của màu chữ được chọn
FontBold True nếu chọn chữ đậm (Bold), False nếu ngược lại
FontItalic True nếu chọn chữ nghiêng, False nếu ngược lại
FontStrikeThru True nếu chọn chế độ gạch ngang ký tự
FontUnderLine True nếu chọn chế độ gạch chân ký tự
FontName Tên font chữ
Max Kích thước lớn nhất của Font được hiển thị
Min Kích thước nhỏ nhất của Font được hiển thị
FontSize Kích thước của Font được chọn
9/14/2011
64
Hộp thoại chọn font chữ
C|c gi| trị của thuộc tính Flags:
Nếu muốn chọn m{u, thêm 256 v{o gi| trị thuộc
tính Flags.
Ví dụ chọn Font: (thực h{nh)
PNH-HUT253
Hằng Giá trị Hiệu quả
cdlCFPrinterFonts &H2 Chỉ hiển thị Font máy in
cdlCFScreenFonts &H1 Chỉ hiển thị Font màn hình
cdlCFBoth &H3 Hiển thị cả Font màn hình và máy in
cdlCFScalableOnly &H20000 Hiển thị Font tỷ lệ như là Font True Type
Hộp thoại chọn font chữ
PNH-HUT254
Hộp thoại chọn font chữ
PNH-HUT255
Hộp thoại in ấn
Cho phép x|c lập
thông tin về m|y in
khi tiến h{nh in ấn.
Sử dụng phương thức
ShowPrinter để mở
hộp thoại in ấn.
PNH-HUT256
9/14/2011
65
Hộp thoại in ấn
C|c thuộc tính:
Ví dụ hộp thoại in ấn (thực h{nh)
PNH-HUT257
Thuộc tính Ý nghĩa
Copies Số bản in
FromPage Số thứ tự của trang bắt đầu in
Max Số bản in tối đa cho phép
Min Số bản in tối thiểu cho phép
PrinterDefault Nếu = True, các thiết lập sẽ ảnh hưởng đến các ứng
dụng khác có sử dụng máy in.
ToPage Số thứ tự trang in cuối cùng
Hộp thoại in ấn
PNH-HUT258
Hộp thoại in ấn
PNH-HUT259
Hộp thoại trợ giúp
Ta dùng method ShowHelp để hiển thị c|c thông
tin giúp đỡ, phải cho CommonDialog ít nhất trị số
của c|c properties HelpFile v{ HelpCommand
PNH-HUT260
9/14/2011
66
B{i thực h{nh tổng hợp
Sử dụng menu v{ hộp thoại (Ứng dụng trình
soạn thảo văn bản đơn giản)
PNH-HUT261
B{i thực h{nh tổng hợp
Sử dụng menu v{ hộp thoại
PNH-HUT262
B{i thực h{nh tổng hợp
Sử dụng menu v{ hộp thoại
PNH-HUT263
Ghi/Đọc dữ liệu trên file
Filename l{ tên tập tin (lưu/mở) lấy từ commondlg.FileName
Ghi:
Open filename For Output As #1
Print #1, txtEdit.Text
Close #1
Đọc:
Dim s as string
Open filename For Input As #1
Do While Not (EOF(1))
Line Input #1, s
txtEdit.Text = txtEdit.Text & s & vbCrLf
Loop
Close #1
PNH-HUT264
9/14/2011
67
Resize điều khiển RTB
Khi Form chứa txtEdit thay đổi kích thước
(resize) xảy ra sự kiện Form_Resize. Đặt lại
kích thước điều khiển txtEdit bằng kích
thước form
txtEdit.Width = ScaleWidth
txtEdit.Height = ScaleHeight
PNH-HUT265
Chương 9
Xử lý tập tin
PNH-HUT266
Nội dung
9.1. C|c kiểu truy cập tập tin
9.2. Tập tin tuần tự
9.3. Tập tin truy xuất ngẫu nhiên
PNH-HUT267
9.1. C|c kiểu truy cập tập tin
Tập tin: một d~y c|c byte trên đĩa. (ký tự, bản ghi,
số, chuỗi )
Có 3 kiểu truy cập tập tin: tuần tự, ngẫu nhiên, nhị
phân.
Tuần tự (Sequential): Đọc/ghi c|c tập tin văn bản
theo c|c chuỗi liên tục.
Ngẫu nhiên (Random): Đọc/ghi tập tin văn bản,
nhị ph}n có cấu trúc theo c|c mẩu tin có độ d{i cố
định.
Nhị ph}n (Binary): Đọc/ghi tập tin có cấu trúc thay
đổi.
PNH-HUT268
9/14/2011
68
9.2. Tập tin tuần tự - Open
Mở tập tin:
Cú pháp:
Open pathname For [Input | Output | Append] As
filenumber [Len = buffersize]
Tham số:
- Input: Mở tập tin để đọc, tập tin phải tồn tại sẵn, nếu
không sẽ b|o lỗi.
- Mở tập tin chưa có sẵn với Output, Append sẽ tạo mới
tập tin v{ mở nó.
- Len: số ký tự trong vùng đệm khi sao chép dữ liệu giữa
tập tin v{ chương trình.
- Filenumber: số hiệu tập tin được mở (nguyên, từ 1 ..
511).
PNH-HUT269
9.2. Tập tin tuần tự - Open (tt)
Mở tập tin – Ví dụ:
Open “C:\TESTFILE" For Output As #1 ' Mở tập
tin để ghi.
PNH-HUT270
9.2. Tập tin tuần tự - Input
Đọc nội dung tập tin:
Hàm Input
Cú pháp: Input (number, filenumber) As String
Trả về number ký tự của tập tin có số hiệu được chỉ định
bởi filenumber
Lệnh Input
Cú pháp: Input # filenumber, varlist
Đọc nội dung của tập tin v{o c|c biến được chỉ bởi varlist.
Chỉ sử dụng với c|c tập tin được ghi bởi lệnh Write #
Lệnh: Line Input # filenumber, varname
Đọc nội dung của một dòng trong tập tin tuần tự v{o biến
chuỗi (varname).
PNH-HUT271
9.2. Tập tin tuần tự - Input (tt)
Đọc nội dung tập tin – Ví dụ:
Dùng Line Input để đọc từng dòng:
Dim LinesFromFile, NextLine As String
Do Until EOF(1)
Line Input #1, NextLine
LinesFromFile = LinesFromFile + NextLine +
Chr(13) + Chr(10)
Loop
Dùng Input để đọc một danh s|ch c|c th{nh phần:
Input #1, name, street, city, state, zip
Dùng hàm Input để đọc về n ký tự:
LinesFromFile = Input(n, #1)
PNH-HUT272
9/14/2011
69
9.2. Tập tin tuần tự - Write
Ghi dữ liệu lên tập tin:
Có 2 c}u lệnh Write # v{ Print #
C}u lệnh Write #
Cú pháp: Write #filenumber, [outputlist]
Ghi dữ liệu v{o tập tin tuần tự. Nội dung ghi chứa trong
danh s|ch biến outputlist, c|c phần tử danh s|ch c|ch
nhau bởi dấu phẩy. Nếu không có outputlist thì ghi một
dòng trắng.
PNH-HUT273
9.2. Tập tin tuần tự - Write (tt)
C}u lệnh Print #
Cú pháp: Print # filenumber, [outputlist]
Tương tự như lệnh Write nhưng dữ liệu có thể định
dạng khi ghi lên tập tin.
Đối số outputlist có thể l{:
[{Spc(n) | Tab[(n)]}] [expression] [charpos]
Trong đó:
- Spc(n): xen n khoảng trắng v{o tập tin.
- Tab(n): dùng để x|c định cột bắt đầu ghi dữ liệu trong
vùng ghi với n l{ số thứ tự cột. Dùng Tab không đối số
để chỉ vị trí bắt đầu của vùng ghi tiếp theo.
- Expression: biểu thức chuỗi hoặc biểu thức số
- Charpos: chỉ định vị trí của ký tự kế tiếp.
PNH-HUT274
9.2. Tập tin tuần tự - Write (tt)
Ghi tập tin – ví dụ:
Ghi nội dung hộp văn bản (một chuỗi) v{o tập tin:
Print #1, Thebox.text
Print #1, "This is a test" ' Ghi chuỗi v{o tập tin.
Print #1, ' Ghi một dòng trắng v{o tập tin.
Print #1, "Zone 1"; Tab ; "Zone 2" ' Tạo hai vùng ghi
Ghi danh s|ch chuỗi, số:
Dim strString as String, intNumber as Integer
strString = “AnyCharacters”
intNumber = 23456
Write #Filenum, strString, intNumber
PNH-HUT275
9.2. Tập tin tuần tự - Close
Đóng tập tin:
Cú pháp: Close filenumberlist
Đóng lại c|c tập tin được mở với c|c số hiệu được mô tả
trong filenumberlist, filenumberlist có dạng sau:
[[#]filenumber] [, [#]filenumber] . . .
Ví dụ: Đóng tập tin đ~ mở cho c|c thao t|c trước
Close #1
PNH-HUT276
9/14/2011
70
9.2. Tập tin tuần tự - Thực h{nh
Ví dụ: Thiết kế ứng dụng duyệt v{ đọc nội dung
tập tin văn bản trên đĩa cứng (B{i thực h{nh)
PNH-HUT277
9.3. Tập tin truy xuất ngẫu nhiên
Dữ liệu trong tập tin truy xuất ngẫu nhiên có dạng c|c bản
ghi đồng nhất. (Tương đương kiểu dữ liệu mẩu tin).
Ví ụ: Kiểu worker tạo mẫu tin 19 bytes gồm 3 trường:
Type worker
LastName As String *10
Tilte As String * 7
Rank As String *2
End Type
Sau khi định nghĩa kiểu mẩu tin, khai b|o c|c biến m{ ứng
dụng cần để xử lý 1 tập tin mở để truy cập ngẫu nhiên:
Public Employee as worker
PNH-HUT278
9.3. Tập tin truy xuất ngẫu nhiên - Open
Mở tập tin:
Cú pháp:
Open pathname [For Random] As filenumber [Len =
RecLength]
Tham số:
- For Random: Mặc định nên có thể không viết.
- Filenumber: Số hiệu tập tin được mở
- Kích thước cho một mẩu tin. Nếu nhỏ hơn sẽ g}y lỗi.
Nếu lớn hơn thì l~ng phí.
PNH-HUT279
9.3. Tập tin truy xuất ngẫu nhiên - Get
Đọc nội dung tập tin – C}u lệnh Get:
Cú pháp:
Get [#] filenumber, [recnumber], varname
Đọc nội dung mẩu tin thứ recnumber v{o biến
varname.
Mẩu tin đầu tiên của tập tin được tính từ 1.
PNH-HUT280
9/14/2011
71
9.3. Tập tin truy xuất ngẫu nhiên - Put
Ghi dữ liệu lên tập tin – C}u lệnh Put:
Cú pháp:
Put [#] filenumber, [recnumber], varname
Ghi mẩu tin thay thế hoặc thêm mới.
Thay thế: Nếu recnumber <= số mẩu tin hiện tại
Thêm mới: recnumber = số mẩu tin hiện tại + 1
PNH-HUT281
9.3. Tập tin truy xuất ngẫu nhiên - Close
Đóng tập tin:
Như với tập tin tuần tự
Lệnh: Close filenumberlist
Đóng lại c|c tập tin được mở với c|c số hiệu được mô tả
trong filenumberlist, filenumberlist có dạng sau:
[[#]filenumber] [, [#]filenumber]...
PNH-HUT282
9.3. Tập tin truy xuất ngẫu nhiên – Ví dụ
Giả sử ta có khai b|o 1
mẩu tin như sau:
Type Hanghoa
MaHang As String * 10
TenHang As String * 40
DVTinh As String * 15
Gia As Double
End Type
PNH-HUT283
Ghi dữ liệu lên tập tin có cấu
trúc là các mẩu tin như trên
Dim h As Hanghoa
h.MaHang = "AM01"
h.TenHang = "Dau goi Clear"
h.DVTinh = "Chai"
h.Gia = 14000#
Open "E:\Test.dat" For Random As #1
Len = LenB(h)
Put #1, 1, h
Close #1
9.3. Tập tin truy xuất ngẫu nhiên – Ví dụ
Đọc dữ liệu từ tập tin có cấu trúc như trên:
Dim h As Hanghoa
Open "E:\Test.dat" For Random As #1 Len = LenB(h)
Get #1, 1, h
Close #1
MsgBox h.MaHang & ": " & h.TenHang & ": " & h.DVTinh &
": " & Str(h.Gia), , “Thong tin Hang Hoa”
PNH-HUT284
9/14/2011
72
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 để tr
Các file đính kèm theo tài liệu này:
- lap_trinh_windows_8476.pdf