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