68727097 Giao Trinh Visual Basic

286
Trang 1/286 Giáo trình Visual Basic TRƯỜNG CAO ĐẲNG KTHUT CAO THNG KHOA ĐIN T– TIN HC GIÁO TRÌNH LP TRÌNH VISUAL BASIC

Transcript of 68727097 Giao Trinh Visual Basic

Page 1: 68727097 Giao Trinh Visual Basic

Trang 1/286 Giáo trình Visual Basic

TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG

KHOA ĐIỆN TỬ – TIN HỌC

GIÁO TRÌNH

LẬP TRÌNH VISUAL BASIC

Page 2: 68727097 Giao Trinh Visual Basic

Trang 2/286 Giáo trình Visual Basic

LỜI MỞ ĐẦU

Kỹ thuật lập trình là môn học cơ sở cho sinh viên chuyên công nghệ thông tin và cũng là kiến thức mà sinh viên khối không chuyên tin học cần phải biết, đặt biệt là các chuyên ngành kỹ thuật: điện, điện tử, tự động hóa, cơ khí… Kiến thức kỹ thuật lập trình hiện đang được giảng dạy cho tất cả sinh viên cao đẳng, trung cấp các khối không chuyên công nghệ thông tin tại nhiều trường Cao Đẳng – Đại Học…

Trong quá trình học môn học này, sinh viên ngoài việc học về kỹ thuật lập trình còn phải học cách sử dụng một ngôn ngữ lập trình cụ thể, và ở đây là Visual Basic. Qua nhiều bài thực hành hướng dẫn chi tiết, giáo trình hướng dẫn cách sử dụng ngôn ngữ lập trình Microsoft Visual Basic, một ngôn ngữ lập trình trực quan, mạnh mẽ, đang được sử dụng rất nhiều tại nước ta. Microsoft Visual Basic hiện là ngôn ngữ giúp ích rất nhiều cho các nhân viên văn phòng sử dụng những phần mềm của Microsoft Office như WinWord, MS Excel, MS Access….

Trong quá trình giảng dạy và biên soạn giáo trình này, chúng tôi đã nhận được nhiều đóng góp quý báu của các đồng nghiệp ở Bộ môn Tin học - khoa Điện tử Tin học. Chúng tôi xin cảm ơn và hy vọng rằng giáo trình này sẽ giúp cho việc giảng dạy và học tập của tập thể giáo viên và học sinh ngày một tốt hợn. Chúng tôi hy vọng nhận được nhiều ý kiến đóng góp để giáo trình ngày càng hoàn thiện.

TP Hồ Chí Minh, ngày 09 tháng 12 năm 2007

Nguyễn Văn Hùng (chủ biên)

và các giáo viên dạy môn Kỹ thuật lập trình.

Page 3: 68727097 Giao Trinh Visual Basic

Trang 3/286 Giáo trình Visual Basic

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU VISUAL BASIC .............................11

1. Lập Trình Trên Windows ........................................................11

2. Các Control Chuẩn Của Windows ..........................................12

3. Giới Thiệu Visual Basic ............................................................13

4. Màn Hình Làm Việc Của Visual Basic ...................................14 Toolbox ...........................................................................................15 Project Explorer ..............................................................................15 Properties Windows ........................................................................16 Cửa sổ Form....................................................................................17 Cửa sổ Code Edittor........................................................................20 Cửa sổ Form Layout .......................................................................22 Để thiết kế giao diện nhanh chóng..................................................22

5. Cấu trúc chương trình Visual Basic........................................23

6. Các Thao Tác Cơ Bản Với Project ..........................................24

7. Các control cơ bản của Visual Basic .......................................25

8. Tạo và thực thi chương trình đầu tiên ....................................25

9. Bài tập ........................................................................................27

CHƯƠNG 2: CÁC CONTROL CƠ BẢN .................................29

1. Đối Tượng ..................................................................................29 Đặc điểm của đối tượng ..................................................................29

Page 4: 68727097 Giao Trinh Visual Basic

Trang 4/286 Giáo trình Visual Basic

2. Đối Tượng Form........................................................................30

3. Đối Tượng Label .......................................................................32

4. Đối Tượng Textbox ...................................................................34

5. Đối Tượng Commandbutton....................................................36

6. Viết Lệnh Cho Đối Tượng ........................................................36

7. Một Số Lệnh Cơ Bản ................................................................38

8. Bài tập thực hành 1...................................................................39 Thiết kế Form..................................................................................40 Viết lệnh cho chương trình .............................................................40

9. Bài tập thực hành 2...................................................................43

10. Frame .....................................................................................44

11. Image......................................................................................45

12. Line.........................................................................................46

13. Shape ......................................................................................47

14. Bài Tập...................................................................................48

CHƯƠNG 3: BIẾN – HẰNG – CẤU TRÚC LỆNH...................53

1. Các Kiểu Dữ Liệu Trong Vb....................................................53

2. Biến (Variable) ..........................................................................54

3. Hằng ...........................................................................................58

Page 5: 68727097 Giao Trinh Visual Basic

Trang 5/286 Giáo trình Visual Basic

4. Các Phép Toán ..........................................................................58

5. Các Hàm Cơ Bản Của Vb ........................................................60 Các hàm toán học............................................................................60 Hàm tạo số ngẫu nhiên (random)....................................................61 Hàm xử lý chuỗi.............................................................................61 Hàm kiểm tra giá trị ........................................................................62 Hàm ký tự........................................................................................62 Hàm màu sắc...................................................................................63 Hàm nhập dữ liệu inputbox.............................................................63 Hàm tạo hộp thông báo msgbox .....................................................64

6. Các Cấu Trúc Lệnh ..................................................................68 A. Cấu trúc rẽ nhánh If – Select case..............................................68

7. Bài tập thực hành If ..................................................................75 Thiết kế giao diện............................................................................75 Viết code cho chương trình.............................................................75 B. Cấu Trúc Lặp For – While – Do While......................................78

8. Check Box ..................................................................................89

9. Option Button............................................................................90

10. ListBox ...................................................................................93

11. Combo Box ............................................................................98

12. Bài Tập.................................................................................104

CHƯƠNG 4: THỦ TỤC .........................................................111

1. Hàm Format ............................................................................111

Page 6: 68727097 Giao Trinh Visual Basic

Trang 6/286 Giáo trình Visual Basic

2. Thủ Tục – Hàm .......................................................................112

3. Mảng.........................................................................................119 Mảng tĩnh 1 chiều .........................................................................119 Mảng nhiều chiều tĩnh...................................................................123 Mảng động ....................................................................................125

4. Các Thuật Toán Cơ Bản.........................................................128 Cộng dồn.......................................................................................128 Cộng dồn theo điều kiện ...............................................................129 Tìm kiếm tuần tự...........................................................................130 Tìm phần tử nhỏ nhất – lớn nhất ...................................................131 Sắp xếp mảng................................................................................132

5. Sử Dụng Một Số Hàm Xử Lý Chuỗi .....................................133

6. Gỡ Rối Chương Trình ............................................................138

7. In Ấn.........................................................................................139

8. Mảng Đối Tượng .....................................................................140

9. Đối Tượng Timer ....................................................................142

10. Bài tập ..................................................................................145

CHƯƠNG 5: CHƯƠNG TRÌNH NHIỀU FORM.....................157

1. Chương Trình Nhiều Form....................................................157 Thêm Form vào project.................................................................157

2. Quản lý Project........................................................................159 3. Vấn đề sử dụng biến, thủ tục và đối tượng có trong các Form 159 4. Quy định Form thực hiện trước.................................................161

Page 7: 68727097 Giao Trinh Visual Basic

Trang 7/286 Giáo trình Visual Basic

5. Hiện Form lên màn hình ...........................................................161

3. FORM MDI (Multi Document Interface)............................166

4. Splash Screen...........................................................................168

5. Tạo Menu Cho Một Form ......................................................171

6. End Sub....................................................................................174

7. Các Hàm Về Dữ Liệu Ngày Giờ ............................................177

8. Bài tập ......................................................................................178

CHƯƠNG 6: SỰ KIỆN PHÍM ...............................................183

1. Các Sự Kiện Phím...................................................................183

2. Sự Kiện Mouse ........................................................................186

3. Xử Lý Lỗi Run Time Error....................................................190

4. Common Dialog.......................................................................192

5. Bài tập ......................................................................................198

CHƯƠNG 7: PHẦN NÂNG CAO.......................................199

1. Windows Common Control ...................................................199

2. ImageList .................................................................................199

3. Toolbar.....................................................................................202

4. Updown control .......................................................................207

Page 8: 68727097 Giao Trinh Visual Basic

Trang 8/286 Giáo trình Visual Basic

5. Slider ........................................................................................208

6. Làm việc với tập tin (file) .......................................................208

CHƯƠNG 8: TÙY BIẾN MÔI TRƯỜNG IDE CỦA VISUAL BASIC....................................................................................211

1. Danh sách các Prefix được đề nghị nên sử dụng..................211

2. Đóng Những Cửa Sổ Phụ .......................................................211

3. Sử dụng Toolbar Standard.....................................................213

4. Sử Dụng Short Cut (Phím Tắt) Của Vb Hiển Thị Các Cửa Sổ 214

5. Thả Nổi Các Cửa Sổ................................................................214

6. Sử Dụng Edit Toolbar.............................................................215

7. Thay Đổi Các Xác Lập Của Môi Trường VB.......................216

8. Sử Dụng Shortcuts (Phím Tắt) Khi Soạn Thảo Code..........219

9. Tách Cửa Sổ Soạn Thảo .........................................................221

10. Kéo Và Thả ..........................................................................222

11. Tạo Nhiều Đối Tượng Nhanh.............................................222

12. Sử Dụng Form Editor Toolbar ..........................................222

13. Điều Chỉnh Đối Tượng Bằng phím....................................223

14. Sử Dụng Colot Palette để chọn màu..................................224

Page 9: 68727097 Giao Trinh Visual Basic

Trang 9/286 Giáo trình Visual Basic

15. Sử Dụng Shortcuts Để Thực Thi Một Project ..................224

16. Sử Dụng Object Brower .....................................................225

17. Sử dụng từ khóa With ........................................................228

18. Sử Dụng giúp đỡ (Help)......................................................228

PHỤ LỤC 1: CÀI ĐẶT VISUAL BASIC.................................229

PHỤ LỤC 2: BÀI TẬP LUYỆN TẬP ......................................237

1. Bài tập tổng hợp ......................................................................237

2. Đề thi trắc nghiệm...................................................................245

TÀI LIỆU THAM KHẢO.........................................................286

Page 10: 68727097 Giao Trinh Visual Basic

Trang 10/286 Giáo trình Visual Basic

Page 11: 68727097 Giao Trinh Visual Basic

Trang 11/286 Giáo trình Visual Basic

CHƯƠNG 1: GIỚI THIỆU VISUAL BASIC

NỘI DUNG

GIỚI THIỆU VỀ NGÔN NGỮ VISUAL BASIC

MÔI TRƯỜNG IDE CỦA VISUAL BASIC

VIẾT CHƯƠNG TRÌNH ĐẦU TIÊN

1. Lập Trình Trên Windows

Khi viết chương trình trên Windows nghĩa là chúng ta tạo ra một ứng dụng được thực thi trong hệ điều hành Microsoft Windows. Trong Microsoft Windows, một ứng dụng thường được hiển thị ở dạng cửa sổ (Window) mà từ góc nhìn của người lập trình Viual Basic, người ta gọi là FORM.

Trên cửa sổ của ứng dụng có các điều khiển (control) để giao tiếp với người sử dụng. Các tác động của người sử dụng lên cửa sổ hay các điều khiển tương ứng sẽ có một đoạn chương trình được thực hiện để đáp trả lại sự kiện đó.

Ví dụ: Giao diện một chương trình làm toán đơn giản

Page 12: 68727097 Giao Trinh Visual Basic

Trang 12/286 Giáo trình Visual Basic

2. Các Control Chuẩn Của Windows

Command button

Check box

Option button

Label và Text box

List box và

Combo box

Frame

Thanh cuốn ngang –dọc (Hscrollbar, Vscrollbar)

Image - Picturebox

Ngòai ra còn nhiều control khác sử dụng trên môi trường Windows mà chúng ta sẽ lần lượt khảo sát sau này.

Page 13: 68727097 Giao Trinh Visual Basic

Trang 13/286 Giáo trình Visual Basic

3. Giới Thiệu Visual Basic

Visual Basic (viết tắt VB) là một ngôn ngữ lập trình hướng sự kiện (event-driven) trên môi trường phát triển tích hợp (IDE) được phát triển bởi hãng phần mềm Microsoft. Visual Basic đã được nâng cấp qua nhiều phiên bản và hiện nay là Visual Basic.NET. Visual Basic bắt nguồn phần lớn từ ngôn ngữ BASIC và giúp lập trình viên phát triển các giao diện đồ họa (GUI) theo mô hình phát triển ứng dụng nhanh (Rapid Application Development, RAD); truy cập các cơ sở dữ liệu dùng DAO (Data Access Objects), RDO (Remote Data Objects), hay ADO (ActiveX Data Objects); và lập các điều khiển và đối tượng ActiveX.

IDE của VB là nơi tập trung các menu, thanh công cụ và cửa sổ để tạo ra chương trình. Thanh menu cho phép bạn tác động cũng như quản lý trực tiếp trên toàn bộ ứng dụng. Thanh công cụ cho phép truy cập các chức năng của thanh menu qua các nút trên thanh công cụ.

Một lập trình viên có thể phát triển ứng dụng dùng các thành phần (component) có sẵn trong Visual Basic. Các chương trình bằng Visual Basic cũng có thể gọi và sử dụng Windows API.

Một lập trình viên có thể phát triển ứng dụng dùng các component có sẵn trong Visual Basic. VB cung cấp cho ta những điều khiển (control) cần thiết để tạo giao diện chương trình nhanh chóng.

Visual Basic được sử dụng rất nhiều trong lĩnh vực lập trình thương mại. Trong giáo trình này sử dụng phiên bản Visual Basic 6.0 Profressional. Hướng dẫn cách cài đặt Visual Basic từ bộ Visual Studio 98 được để tại phần phụ lục của giáo trình này.

Page 14: 68727097 Giao Trinh Visual Basic

Trang 14/286 Giáo trình Visual Basic

4. Màn Hình Làm Việc Của Visual Basic

Giao diện đầu tiên của chương trình cho phép chúng ta chọn lọai ứng dụng. Với yêu cầu của môn học này, chúng ta chọn lọai Standard Exe.

Sau khi khởi động Starndard ExE của VB, giao diện chính của chương trình như sau (giao diện trên máy của bạn sẽ thay đổi tùy thuộc các thiết lập của IDE).

Page 15: 68727097 Giao Trinh Visual Basic

Trang 15/286 Giáo trình Visual Basic

Toolbox

Chứa các đối tượng có thể đặt lên Form. Chúng ta click chuột để chọn điều khiển, sau đó tạo ra trên Form. Hoặc có thể bấm double – click, control sẽ tự động đưa lên Form.

Để bật – tắt toolbox, chúng ta dùng

nút lệnh trên thanh công cụ.

Project Explorer

Chứa thông tin về chương trình: các Form, Module, class … trong project.

Từ cửa sổ này chúng ta di chuyển đến các thành phần trong chương trình bằng cách double click chuột vào Form hoặc module…

Page 16: 68727097 Giao Trinh Visual Basic

Trang 16/286 Giáo trình Visual Basic

Để bật hay tắt cửa sổ Project Explorer, sử dụng phím tắt:

Ctrl+R hoặc dùng nút trên thanh toolbar.

Properties Windows

Dùng để hiển thị và thiết lập các thuộc tính (property) của Form hoặc của các control có trên Form lúc thiết kế. Thuộc tính của một đối tượng là các tính chất, đặc điểm mô tả đối tượng này. Các control mới tạo ra đều có giá trị thuộc tính được lấy mặc định (default) hoặc kế thừa từ control chứa nó.

Trên cửa sổ properties gồm hai cột:

Danh sách thuộc tính

Giá trị của thuộc tính

Để thiết lập thuộc tính cho một đối tượng:

Chọn đối tượng trên Form bằng cách click chuột

Click chuột vào cột giá trị của thuộc tính cần đặt trên cửa sổ thuộc tính, sau đó chọn hoặc nhập giá trị cho thuộc tính.

Một số thuộc tính thông dụng nên nhớ:

Page 17: 68727097 Giao Trinh Visual Basic

Trang 17/286 Giáo trình Visual Basic

Backcolor: màu nền của đối tượng

Caption: tiêu đề, đây là nội dung hiển thị lên trên đối tượng.

Enabled: cho phép hay cấm đối tượng họat động.

Font: thiết lập về font chữ của đối tượng

Forecolor: màu của các ký hiệu xuất hiện trên đối tượng

Height: chiều cao của đối tượng

Left: khoảng cách tính từ cạnh trái của Form (hay control chứa đối tượng đó)

Name: tên của đối tượng (khác với caption).

Top: khoảng cách tính từ cạnh phía trên của Form hay control chứa đối tượng

Visible: cho phép đối tượng hiển thị hay không ở thời điểm run-time

Width: chiều dài của đối tượng

Cửa sổ Form

Đây là nơi thiết kế giao diện của chương trình. Chúng ta thiết kế giao diện bằng cách đưa đối tượng lên Form.

Để mở cửa sổ Form Desiner, chúng ta thực hiện bằng nhiều cách:

Page 18: 68727097 Giao Trinh Visual Basic

Trang 18/286 Giáo trình Visual Basic

Từ cửa sổ Project Explorer, bấm Double Click vào Form thiết kế

Từ cửa sổ code, bấm phím Shift+F7

Bấm vào nút View Code trên cửa sổ Project Explrer

Để chọn một đối tượng trên Form:

Dùng chuột rê và chọn nhóm đối tượng

Giữ phím Ctrol và click chuột để nhặt và chọn các đối tượng

Để di chuyển đối tượng trên Form

Dùng chuột rê các đối tượng đến vị trí cần thiết.

Chọn đối tượng và di chuyển bằng các phím mũi tên:

Để xóa đối tượng trên Form

Chọn đối tượng hay nhóm đối tượng và bấm phím delete.

Để điều chỉnh kích thước đối tượng

Đưa chuột vào các nút vuông bao xung quanh đối tượng và rê chuột để thay đổi kích thước.

Để thay đổi kích thước, vị trí của nhóm đối tượng, chúng ta có thể sử dụng menu Align để gióng hàng và điều chỉnh kích thước.

Page 19: 68727097 Giao Trinh Visual Basic

Trang 19/286 Giáo trình Visual Basic

Chọn menu Formmat -> Align để thực hiện gióng hàng đối tượng: theo left, center, right, top….

Chọn menu Formmat -> Make Same Size định dạng các đối tượng có cùng kích cỡ theo: chiều dài (width), chiều cao (Height) hay cả 2 (Both)

Page 20: 68727097 Giao Trinh Visual Basic

Trang 20/286 Giáo trình Visual Basic

Chọn menu Formmat -> Horizontal Spacing (hoặc Vertical Spacing) khi muốn định dạng khỏang cách giữa các đối tượng.

Cửa sổ Code Edittor

Cửa sổ này dùng để viết lệnh (code) cho chương trình.

Để mở cửa sổ Code Edittor, chúng ta thực hiện bằng nhiều cách:

Từ cửa sổ Form, bấm Double Click vào đối tượng cần viết code

Page 21: 68727097 Giao Trinh Visual Basic

Trang 21/286 Giáo trình Visual Basic

Từ cửa sổ Form, bấm phím F7

Bấm vào nút View Code trên cửa sổ Project Explrer

Trong cửa sổ code, chúng ta thấy có 2 hộp chọn:

Đối tượng (Control)

Sự kiện (Event) xảy ra trên đối tượng đó

Page 22: 68727097 Giao Trinh Visual Basic

Trang 22/286 Giáo trình Visual Basic

Cửa sổ Form Layout

Dùng để xác định vị trí các cửa sổ khi thực thi chương trình. Đặt biệt khi chương trình có nhiều cửa sổ (Form), việc xác định vị trí trực quan của cửa sổ là rất quan trọng.

Chúng ta chỉ việc kéo thả các Form (Form1, Form2) để xác định vị trí của chúng trên màn hình.

Để thiết kế giao diện nhanh chóng

Nếu trên Form có nhiều đối tượng cùng loại và có thuộc tính giống nhau thì chúng ta tạo một đối tượng và định dạng trước các thuộc tính, sau đó sao chép ra thành nhiều đối tượng khác bằng phím tắt Ctrl+C (copy) và Ctrl+V (Paste). Ngay khi copy – paste, chương trình sẽ hỏi:

Chọn No để không tạo mảng đối tượng. Chỉ khi nào các bạn đã học mảng đối tượng mới chọn yes

Page 23: 68727097 Giao Trinh Visual Basic

Trang 23/286 Giáo trình Visual Basic

Nếu có nhiều đối tượng muốn định dạng giống nhau trên một thuộc tính nào đó thì chọn các đối này cùng lúc rồi tiến hành định dạng.

Sử dụng các chức năng canh lề, định kích thước do VB cung cấp, khi những thuộc tính này của nhiều đối tượng có liên quan với nhau.

Nên thiết lập thuộc tính cho Form (hay đối tượng chứa) như màu chữ, font chữ… trước, sau đó mới đặt control lên trên. Làm như vậy để control kế thừa các thiết lập của các thuộc tính này, và chúng ta không mất thì giờ để chọn cho từng control.

5. Cấu trúc chương trình Visual Basic

Hai bước chính khi xây dựng một chương trình trên VB là:

Thiết kế giao diện: Thiết kế Form và bố trí các đối tượng có trên Form

Viết lệnh: Viết các đoạn mã để điều khiển Form và các control ứng với mỗi sự kiện xảy ra.

Khi thực hiện hai bước này gọi là lập một dự án (project). Mỗi project khi lưu lên dĩa có thể có nhiều tập tin.

File *.vbp : file project của chương trình. Chúng ta mở chương trình từ file này

File *.frm: file Form chứa giao diện của chương trình

File *.bas: chứa module cua chương trình

File *.cls: chứa class của chương trình

Và ngòai ra còn nhiều lọai file khác nữa (file resource, file temp…)

Page 24: 68727097 Giao Trinh Visual Basic

Trang 24/286 Giáo trình Visual Basic

Do đó trước khi lập một project ta nên tạo một folder trên dĩa để lưu project. Khi chép chương trình, chúng ta chép toàn bộ folder này.

Chú ý: Mỗi bài tập được lưu trong một folder

6. Các Thao Tác Cơ Bản Với Project

Mở một project mới:

File –> New project –> standard EXE –> OK

Mở một project đã có:

File – Open project – Xác định nơi lưu trữ project sau đó chọn tên project muốn mở –> OK

Chạy chương trình:

Bấm phím F5 hoặc

Dừng chương trình

Dùng nút lệnh

Đóng một project đang mở:

File – remove project

Lưu project:

File – Save project

Page 25: 68727097 Giao Trinh Visual Basic

Trang 25/286 Giáo trình Visual Basic

7. Các control cơ bản của Visual Basic

Visual Basic chứa nhiều control, nhưng trong nội dung của môn học này chúng ta chỉ tập trung vào các control cơ bản.

8. Tạo và thực thi chương trình đầu tiên

Tạo project mới với giao diện như sau: (Xem hình)

Đặt tên (thuộc tính Name) cho các nút lệnh lần lượt là Cmd1, Cmd2…Cmd9, Cmd0, Cmdcong, Cmftru, cmdnhn, CmdChia, CmdBang. Để thay đổi name của các control, chúng ta mở cửa sổ Properties, sau đó chọn từng control một, và đổi Name.

Nhập thuộc tính Caption của các button là các giá trị tương ứng.

Đặt tên cho textbox

Page 26: 68727097 Giao Trinh Visual Basic

Trang 26/286 Giáo trình Visual Basic

là txtketqua.

Nhập thuộc tính text của textbox là rỗng

Bấm F5 thực thi chương trình.

Dừng chương trình

Double click vào nút lệnh CmdBang để hiển thị cửa sổ code. Nhập lệnh như hình dưới.

Bấm F5 thực thi chương trình.

Bấm vào nút = (CmdBang) và xem xét hộp thoại hiển thị trên màn hình.

Page 27: 68727097 Giao Trinh Visual Basic

Trang 27/286 Giáo trình Visual Basic

9. Bài tập

1. Thực hiện các yêu cầu sau:

Tạo Project. EXE.

Tắt / mở các thành phần của VB: ToolBox, Form, Project Explorer, Code Windows, Properties Window.

Lưu Project với tên BaiTap1 trong thư mục BaiTap1

Mở Project và thực thi chương trình

2. Thiết kế giao diện cho chương trình như sau:

Lưu ý: Mỗi bài tập nên tạo trên dĩa một folder để lưu những tập tin project, Form.. của bài tập đó.

Hãy tạo một Form có dạng sau: (trong bài tập này ta chưa cần quan tâm đến tên của các đối tượng, vì vậy cứ lấy tên mặc nhiên.) Sau khi thiết kế xong hãy lưu lên dĩa với tên tập tin project là bt1_chuong1 rồi cho thực hiện chương trình thử.

3. Hãy tạo các Form có dạng sau:

Page 28: 68727097 Giao Trinh Visual Basic

Trang 28/286 Giáo trình Visual Basic

Trong bài tập này ta chưa cần quan tâm đến tên của các đối tượng, vì vậy cứ lấy tên mặc nhiên. Sau khi thiết kế xong hãy lưu lên dĩa với tên tập tin project là Bai3_chuong1 rồi cho thực hiện chương trình thử.

Bài tập này nhằm rèn luyện các thao tác sao chép, di chuyển, kỹ năng sử dụng các công cụ định dạng đối tượng:

Align

Make same size

Horizontal spacing

Vertical spacing

Lock controls

Page 29: 68727097 Giao Trinh Visual Basic

Trang 29/286 Giáo trình Visual Basic

CHƯƠNG 2: CÁC CONTROL CƠ BẢN

NỘI DUNG

ĐỐI TƯỢNG VÀ CÁCH SỬ DỤNG

CÁC CONTROL CƠ BẢN: FORM – LABEL – TEXTBOX – COMMAND BUTTON – FRAME - SHAPE – LINE – IMAGE

MỘT SỐ LỆNH CƠ BẢN

LẬP TRÌNH TƯƠNG TÁC VỚI CÁC CONTROL

1. Đối Tượng

VB là một ngôn ngữ lập trình hướng đối tượng nên làm việc trên VB chính là làm việc trên các đối tượng. Mỗi chương trình trên VB có nhiều đối tượng, mỗi đối tượng dùng để thể hiện một yếu tố nào đó trong chương trình.

Đặc điểm của đối tượng

Mỗi đối tượng có một tên (Name) để phân biệt và trong chương trình dùng tên này để truy xuất đến đối tượng. Có thể dùng chữ cái, chữ số, _ để đặt tên cho đối tượng và phải bắt đầu bằng một chữ cái. Tên dài tối đa 40 ký tự. Không chứa khoảng trắng và các dấu chấm câu. Không trùng tên với từ khóa. Tên đối tượng không phân biệt chữ hoa hay chữ thường.

Tuy nhiên để cho dễ quản lý và thuận lợi khi viết chương trình, người ta đề xuất cách đặt tên như sau: Luôn luôn bắt đầu bằng 3 chữ

Page 30: 68727097 Giao Trinh Visual Basic

Trang 30/286 Giáo trình Visual Basic

cái thường cho biết loại đối tượng (gọi là prefix.) ví dụ như cmd, lbl, frm, txt. Danh sách Prefix được mô tả ở các phần sau.

Mỗi đối tượng có nhiều thuộc tính. Các thuộc tính có thể thay đổi trên cửa sổ properties lúc thiết kế (design time) hoặc bằng chương trình lúc thực thi (run time).

Mỗi đối tượng đều có các hoạt động được gọi là phương thức (method).

Khi một chương trình được thực hiện mỗi đối tượng nhận được các sự kiện (Event) tác động lên nó (chẳng hạn như click, doudvle click, right click..). Chúng ta viết lệnh trong các event này để xử lý trước các sự kiện nhận vào.

Trong các đoạn mã lệnh của chương trình để truy xuất đến các thuộc tính, các phương thức của đối tượng người ta dùng tên của đối tượng kèm theo tên của thuộc tính hoặc phương thức theo cú pháp:

<tên đối tượng>.<tên property/tên method>

o Ví dụ: txt_hoten.text=”DurianGroup”

2. Đối Tượng Form

Form là một đối tượng cơ sở của chương trình. Hầu như mọi chương trình đều bắt đầu từ một Form. Đối tượng này có nhiều property và method. Chúng ta sẽ tìm hiểu tác dụng của một giá trị trên các thuộc tính cơ bản:

Caption: Đặt tiêu đề cho Form.

Name: tên của Form, đặt 3 ký tự đầu là Frm

Borderstyle: Quy định kiểu khung cho Form

Page 31: 68727097 Giao Trinh Visual Basic

Trang 31/286 Giáo trình Visual Basic

o 0-none: Không có khung, kèm theo không có control menubox, Maximize box, minimize box, không hiện tiêu đề và không thể thay đổi kích thước khi chương trình thực hiện.

o 1-Fix single: Khung đơn, có control menu box, không thay đổi kích thước được.

o 2-Sizable: Có đầy đủ các yếu tố Control menu box, maximize, minimize box, tiêu đề, khung kép và có thể thay đối kích thước được.

o 3-Fixed dialog: Cửa sổ dạng hộp thoại, có tiêu đề, control menu box, không thay đổi kích thước

o 4-FixtoolWindow: Giống Fixed single nhưng tiêu đề và control menu box có kích thước nhỏ.

o 5-Sizable ToolWindow: Giống FixTollWindow nhưng kích thước có thể thay đổi được.

ConttrolBox: Nếu đặt là True thì Form sẽ có menu control box, dĩ nhiên nó còn phụ thuộc vào loại border đã chọn. Nếu đặt là false thì không có menu control box, Maximize, Minimize button.

Maxbutton: Nếu đặt là True thì Form sẽ có nút maximize, dĩ nhiên nó còn phụ thuộc vào giá trị của controlbox đã chọn. Nếu đặt là false thì không có nút Maximize

Minbutton: Nếu đặt là True thì Form sẽ có nút minimize, dĩ nhiên nó còn phụ thuộc vào giá trị của controlbox đã chọn. Nếu đặt là false thì không có nút minimize

Page 32: 68727097 Giao Trinh Visual Basic

Trang 32/286 Giáo trình Visual Basic

Icon: Quy định biểu tuợng đại diện cho Form khi Form ở trạng thái minimize. Thuộc tính này cũng phụ thuộc vào giá trị của thuộc tính controlbox

Picture: Đặt một hình lên nền của Form, có thể là những loại :BMP, DIB, GIF, JPG, ICO,CUR… Muốn xóa hình đã đặt trên Form chỉ cần xóa nội dung đang có trên dòng này (bấm phím Delete tại hàng Picture trong cửa sổ Properties).

ShowInTaskbar: Nếu đặt là true thì tên của cửa sổ được hiện lên taskbar, ngược lại thì không

WindowState: Quy định trạng thái của của số khi Form vừa được mở (chương trình thực hiện), thuộc tính này có giá trị số:

o 0: Cửa sổ có kích thước giống như lúc thiết kế.

o 1: Hiện cửa sổ ở chế độ cực tiểu

o 2: Hiện cửa sổ ở chế độ cực đại

3. Đối Tượng Label

Đối tượng này dùng để hiện một câu văn bản trên Form, nội dung câu văn bản này không thể thay đổi bởi người sử dụng trong quá trình chương trình thực hiện. Nếu muốn hiển thị thông tin mà không cho phép người sử dụng nhập, thì chúng ta sử dụng Label.

Các thuộc tính cơ bản của Label

Name: tên của Label, đặt 3 ký tự đầu là Lbl

Caption: Nội dung hiện trên đối tượng này

Page 33: 68727097 Giao Trinh Visual Basic

Trang 33/286 Giáo trình Visual Basic

Font: Quy định font chữ cho nội dung hiện trênllabel

Aligment: Canh lề cho nội dung hiện trên label

Backcolor: Màu nền của đối tượng

BorderStyle: Khung viền

Forecolor: Màu của chữ

Backstyle: Quy định cách thể hiện nền của label

o 0-Transparent: Nền trong suốt, không bị ảnh hưởng bởi backcolor

o 1-Opaque: Nền được thê hiện bởi giá quy định trong backcolor

Autosize: Nếu đặt bằng true thì kích thước label tự động co giản để vừa với nội dung. Ngược lại đặt bằng false thì phải điều chỉnh bằng tay

Wordwrap: Nếu đặt bằng true thì tự động xuống dòng dưới khi đụng lề phải của label. Ngược lại đặt bằng false thì nội dung có thể bị che khuất dài hơn chiều dài của label.

Appearance: có 2 giá trị (3D – Flat): cho phép hiển thị dạng phẳng hay 3D

Left: vị trí tính từ bên trái control chứa nó

Top: vị trí tính từ đỉnh control chứa nó

Height: chiều cao

Width: chiều dài

Visible: (True/False) cho phép đối tượng có được hiển thị hay không ở thời điểm run-time

Sự kiện (Event) cơ bản hay sử dụng của Label

Page 34: 68727097 Giao Trinh Visual Basic

Trang 34/286 Giáo trình Visual Basic

Label_Click: xảy ra khi người sử dụng click chuột trên Label

4. Đối Tượng Textbox

Đối tượng Textbox này cho phép nhập và thể hiện một nội dung nào đó dạng chuỗi. Khi chương trình muốn nhận dữ liệu được nhập bởi người sử dụng, chúng ta có thể sử dụng Textbox.

Các thuộc tính cơ bản của Textbox:

Name: tên textbox, đặt 3 ký tự đầu là Txt

Text: Nội dung chứa trong teXtbox

Maxlength: Chiều dài tối đa của nội dung thể hiện trong textbox

Enable: cho phép textbox có nhận sự kiện, chỉnh sửa nội dung.

Font: các thiết lập về font

Page 35: 68727097 Giao Trinh Visual Basic

Trang 35/286 Giáo trình Visual Basic

Aligment: giống Label

Backcolor: giống Label

Forecolor: giống Label

Appearance: giống Label

BorderStyle: giống Label

Left: vị trí tính từ bên trái control chứa nó

Top: vị trí tính từ đỉnh control chứa nó

Height: chiều cao

Width: chiều dài

Visible: (True/False) cho phép đối tượng có được hiển thị hay không lúc run-time

Sự kiện (Event) cơ bản của Textbox

Text_Change: xảy ra khi nội dung của textbox bị thay đổi

Text_Click: xảy ra khi người sử dụng click chuột trên textbox

Text_DblClick: xảy ra khi người sử dụng double click chuột trên textbox

Page 36: 68727097 Giao Trinh Visual Basic

Trang 36/286 Giáo trình Visual Basic

5. Đối Tượng Commandbutton

Là nút lệnh khi muốn chuơng trình thực hiện một xứ lý nào đó dựa trên xác nhận của nguời sử dụng. Người sử dụng click chuột, và nút lệnh được tác động.

Ngoài các thuộc tính tương tự như Label, Textbox đã mô tả ở trên, thuộc tính cơ bản của command button quan trọng được sử dụng nhiều nhất là:

Caption: nội dung sẽ thể hiện trên nút lệnh.

Name: tên command button, đặt 3 ký tự đầu là Cmd

Visible: (True/False) cho phép đối tượng có được hiển thị hay không lúc run-time

Enabled: Cho phép button có họat động (sáng/mờ) hay không

Sự kiện cơ bản hay sử dụng của command button

Click: xảy ra khi người sử dụng Click chuột trên command button

6. Viết Lệnh Cho Đối Tượng

Khi ta đặt một đối tượng lên Form thì đối tượng này vẫn chưa hoạt động, bởi ta chưa quy định cho nó phải làm gì thông qua các lệnh.

Page 37: 68727097 Giao Trinh Visual Basic

Trang 37/286 Giáo trình Visual Basic

Chúng ta có thể quy định các phản ứng cho đối tượng tùy thuộc vào sự kiện xảy ra trên bản thân đối tượng đó, vì vậy truớc khi viết lệnh cần chú ý hai việc:

Xác định sự kiện nào trên đối tượng nào sẽ gây ra các xử lý

Viết những lệnh gì để thực hiện xử lý đó

Các bước để viết lệnh cho đối tượng:

Trên màn hình thiết kế, double click vào đối tượng muốn viết lệnh, khi đó cửa sổ viết lệnh sẽ xuất hiện.

Chọn sự kiện mà ta muốn viết lệnh. Khi đó hai dòng (tên hàm sự kiện và dòng kết thúc của thủ tục) tương ứng của sự kiện xuất hiện.

Viết các lệnh vào giữa hai dòng vừa xuất hiện.

Mỗi lệnh viết trên một dòng. Nếu lệnh quá dài muốn ngắt dòng thì để một khoảng trắng và dấu _ ở cuối dòng trên.

VB có chế độ hổ trợ cho người lập trình lúc nhập mã lệnh:

Ví dụ: Khi cần truy xuất đến một thuộc tính hay phương thúc nào đó của một đối tượng ta gỏ tên đối tượng rồi gõ

Page 38: 68727097 Giao Trinh Visual Basic

Trang 38/286 Giáo trình Visual Basic

rồi dấu chấm, lúc này một danh sách các thuộc tính và phương thức của đối tượng này hiện lên ta bấm tiếp các ký tự đầu của thuộc tính/sự kiện mà ta cần rồi bấm phím Tab hay Ctrl-Enter hay Double click.

Trong trường hợp danh sách này không hiện lên thì phải xem lại có thể ta đã viết tên đối tượng sai.

Nếu thuộc tính mà ta cần không có trong danh sách thì có nghĩa là thuộc tính này không thể thay đổi được bằng chương trình

Lưu ý 1: Khi đã viết lệnh cho các đối tượng thì kể từ lúc đó ta không nên thay đổi giá trị thuộc tính name của đối tượng, vì khi đó các lệnh sử dụng tên cũ của đối tượng sẽ không hiểu được đối tượng này. Do đó, nên đặt tên cho các đối tượng trước, rồi sau đó mới bắt đầu viết Code.

Lưu ý 2: Không sửa đổi trên hai dòng tiêu đề và dòng kết thúc.

7. Một Số Lệnh Cơ Bản

Lệnh End: Dùng chấm dứt một chương trình VB đang thực hiện.

Page 39: 68727097 Giao Trinh Visual Basic

Trang 39/286 Giáo trình Visual Basic

Lệnh gán: Ký hiệu =, lệnh này có công dụng gán giá trị vào biến hoặc gán giá trị mới vào một thuộc tính của đối tượng.

Lệnh Val: chuyển từ chuỗi sang số. Chi tiết về kiểu dữ liệu sẽ được đề cập ở các bài sau.

8. Bài tập thực hành 1

Thiết một Form và viết chương trình cho from hoạt động như sau:

Trên Form có một textbox được đặt tên txt_mess, nội dung ban đầu là rỗng. Font chữ tiếng Việt, kích thước 14pt

3 đối tượng còn lại là 3 commandbutton có tên tuần tự như sau: cmd_mess, cmd_del, cmd_end.

Khi sự kiện vào cmd_mess thì câu chào “Chúc mừng bạn đến với VB” xuất hiện trên textbox txt_mess.

Khi click vào cmd_del nội dung trên textbox bị xóa.

Khi click vào trên cmd_end thì chương trình kết thúc.

Khi double – click vào textbox txt_mess thì hiển thị website của bạn

Page 40: 68727097 Giao Trinh Visual Basic

Trang 40/286 Giáo trình Visual Basic

Trình tự thực hiện:

Thiết kế Form

Tạo một folder mới trên dĩa

Open một project mới.

Đặt tên cho Form là frm_main, caption là “chương trình đầu tiên”

Đưa một textbox lên Form, đặt tên là txt_mess, thuộc tính text=””, font chữ VNI_DUFF, cở chữ 14, Aligment: center

Đưa một command button lên Form, chỉnh kích thước, chọn font chữ VNI-APTIMA, cở chữ 10. Đặt caption=In lời chào, Name=cmd_mess

Chọn nút lệnh thứ hai, đặt name=cmd_del, caption=Xoá nội dung trong textbox

Chọn nút lệnh thứ ba, đặt name=cmd_end, caption=kết thúc

Viết lệnh cho chương trình

Nhấp kép vào nút lệnh cmd_mess:

Nhập thêm hàng quy định cách khai báo biến: Option Explicit

Page 41: 68727097 Giao Trinh Visual Basic

Trang 41/286 Giáo trình Visual Basic

ngay đầu (xem hình). Từ nay về sau, trong tất cả các bài tập, bạn phải khai báo hàng này vào đầu tất cả các Form. Về chi tiết cho khai báo này sẽ được đề cập chi tiết ở các chương sau.

Nhập dòng lệnh sau:txt_mess.text=”Chúc mừng bạn đến với VB” vào giữa dòng tiêu đề và dòng kết thúc

Chọn đối tượng cmd_del trên combo box object, chọn sự kiện click. gỏ vào lệnh sau: txt_mess=”” (Xóa nội dung của textbox)

Chọn đối tượng cmd_end trên hộp chọn phía trên bên trái, chọn sự kiện click trên combobox even. Gõ vào lệnh sau: end

Page 42: 68727097 Giao Trinh Visual Basic

Trang 42/286 Giáo trình Visual Basic

Mở cửa sổ Form, bấm double click trên txt_mess để mở cửa sổ code. Trong khi con trỏ chuột đang nằm giữa vùng Private Sub txtmess_Change() …. End Sub thì chọn hộp danh sách (chứa sự kiện) bên góc trên phải, chọn vào sự kiện DblClick

Viết code xử lý cho sự kiện double – click trên textbox

Page 43: 68727097 Giao Trinh Visual Basic

Trang 43/286 Giáo trình Visual Basic

9. Bài tập thực hành 2

Viết chương trình thay đổi vị trí và nội dung của Label sử dụng các command button (xem hình).

Khi người sử dụng bấm vào nút tương ứng - ví dụ: top left) thì Label sẽ nằm ở vị trí trên phía trái với nội dung là Top Left.

Sau khi thiết kế giao diện và đặt tên các đối tượng lần lượt là Lbl1, cmdTopLeft, CmdTopRight, CmdButtomLeft, CmdButtomRight, double click chuột vào lần lượt từng command button và viết lệnh như sau:

Page 44: 68727097 Giao Trinh Visual Basic

Trang 44/286 Giáo trình Visual Basic

10. Frame

Là một control dạng vật chứa (container), dùng để chứa các control khác. Khi đưa lên Form nó hiển thị dạng khung hình chữ nhật có tiêu đề.

Page 45: 68727097 Giao Trinh Visual Basic

Trang 45/286 Giáo trình Visual Basic

Sau khi đã đặt một frame trên Form nếu ta đặt các control khác vào trong frame này thì frame trở thành vật chứa của control đó.

Frame còn được dùng để nhóm các đối tượng hoạt động theo nhóm như Option button.

Thuộc tính chính của Frame là :

Name: tên của Frame, đặt 3 ký tự đầu (prefix) là Fla

Caption: nội dung hiển thị trên tiêu đề của Frame

Backcolor: màu nền

Forecolor: màu chữ của các đối tượng trên Frame

11. Image

Đối tượng này dùng để hiển thị hình ảnh.

Các thuộc tính chính:

Name: tên của đối tượng, với 3 ký tự đầu (prefix) là Img

Picture: hình ảnh cần hiển thị

Stretch (true/false): cho phép co dãn hình hay hiển thị theo kích thước thật của ảnh

Visile: cho phép hiển thị hay không

Page 46: 68727097 Giao Trinh Visual Basic

Trang 46/286 Giáo trình Visual Basic

Height: chiều cao ảnh

Width: chiều dài ảnh

Để đưa hình ảnh lên Image có 2 cách:

Quy định tại thời điểm thiết kế (Design-time): thông qua thuộc tính picture. Chọn hình cần hiển thị

Tại thời điểm thực thi chương trình (run-time): bằng cách gán thuộc tinh picture bằng kết quả của hàm loadpicture(). Ví dụ

Img.Picture = LoadPicture("c:\DurianGroup.jpg")

12. Line

Đối tượng này đơn giản chỉ để trình vẽ một đượng thẳng trên Form dùng cho việc trang trí giao diện.

Các thuộc tính của Line:

Name: tên của line với 3 ký tự đầu là Lin

Bordercolor: màu viền đường line

BorderWidth: kích thước đường line

BorderStyle: kiểu vẽ đường line

X1,x2,y1,y2: tọa độ (x,y) của 2 điểm đầu và cuối của line

Page 47: 68727097 Giao Trinh Visual Basic

Trang 47/286 Giáo trình Visual Basic

13. Shape

Giống như Line đối tượng shape dùng để trang trí với khả năng biểu diễn các hình cơ bản: vuông, tròn, Ellipse..

Thuộc tính chính của shape là:

Name: tên của shape với 3 ký tự đầu là Shp

Shape:

o 0: Trình bày hình chữ nhật

o 1: Trình bày hình vuông

o 2: Trình bày hình ellipse

o 3: Trình bày hình tròn

o 4: Trình bày hình chữ nhật góc tròn

o 5: Trình bày hình vuông góc tròn.

FillStyle: kiểu tô màu bên trong Shape. Bạn chỉ nhìn thấy màu bên trong khi FillStyle khác 0 (Transparent: trong suốt).

FillCorlor: màu tô bên trong

Page 48: 68727097 Giao Trinh Visual Basic

Trang 48/286 Giáo trình Visual Basic

14. Bài Tập

Lưu ý: Mỗi bài tập nên tạo trên dĩa một folder để lưu những tập tin project, Form của bài tập đó.

1.Hãy thiết kế một Form như sau:

Đặt tên cho 3 textbox lần lượt là : txthoten, txtho, txtten

Đặt tên cho 3 nút lệnh lần lượt là btnHoLot, btnTen, btnHovaten

Hãy viết lệnh cho các đối tượng để Form có thể hoạt động như sau:

Người sử dụng sẽ gỏ họ và chữ lót vào txtholot, và tên vào txtten

Nếu nút lệnh cmd_holot được click thì nội dung của txthoten =txtholot.text

Nếu nút lệnh cmd_ten được click thì nội dung của txthoten=txt_ten.text

Nếu nút lệnh cmd_hoten được click thì nội dung của txthoten =txt_holot.text & “ “ & txtten.text

Nếu double click (sự kiện dlbclick) trên txthoten thì nội dung của txthoten bị xóa.

Page 49: 68727097 Giao Trinh Visual Basic

Trang 49/286 Giáo trình Visual Basic

2.Thêm vào bài tập trên với yêu cầu sau:

Nội dung của txtholot và txtten được thể hiện ngay trên txtHoTen khi người sử dụng nhập dữ liệu vào txt_holot hay txtten (gợi ý: viết lệnh cho sự kiện change của txtholot và txtten

3.Hãy thiết kế một Form như sau:

Đặt tên đối tượng như hình mô tả.

Hãy viết lệnh cho các đối tượng để Form có thể hoạt động như sau:

Người sử dụng sẽ nhập các giá trị vào txt1, txt2 (là những giá trị số)

Nếu nút lệnh cmd1 được click thì nội dung của Lbl_mess=val(txt1.text)+ val(txt2.text)

Nếu nút lệnh cmd2 được click thì nội dung của Lbl_mess=val(txt1.text) - val(txt2.text)

Page 50: 68727097 Giao Trinh Visual Basic

Trang 50/286 Giáo trình Visual Basic

Nếu nút lệnh cmd3 được click thì nội dung của lbl_mess=val(txt1.text) * val(txt2.text)

Nếu nút lệnh cmd4 được click thì nội dung của lbl_mess=val(txt1.text) * val(txt1.text)

Nếu nút lệnh cmd5 được click thì nội dung của lbl_mess=val(txt1.text)* val(txt1.text)* val(txt1.text)

Nếu nút lệnh cmd5 được click thì nội dung của lbl_mess=sqr(val(txt1.text))

Nếu nút lệnh cmd_exit được click thì kết thúc chương trình

Nếu double click (sự kiện dblclick) trên lbl_mess, hoặc txt1 hoặc txt2 thì xóa nội dung đang có của hai textbox txt1, txt2 và label lbl_mess.

4. Hãy tạo một Form như sau:

Khung màu trắng là một picture box với appearrance = flat

Hình tròn là một shape được vẽ bên trong Picture box

Khi chương trình chạy mỗi lần người sử dụng click vào các nút mũi tên thì hình tròn sẽ dịch chuyển một khoảng (tùy

Page 51: 68727097 Giao Trinh Visual Basic

Trang 51/286 Giáo trình Visual Basic

ý) theo hướng mũi tên đã click (sử dụng thuộc tính left, top của shape)

5. Viết chương trình chọn hình dạng và màu của một shape như sau:

Đặt tên Shape là Shp, thiết lập thuộc tính fillStyle của Shp là 0-Solid

Viết code để chọn hình dạng (Shape) và màu tô (FillColor) như sau:

Sub CmdVuong_Click()

Shp.Shape=1

End sub

Page 52: 68727097 Giao Trinh Visual Basic

Trang 52/286 Giáo trình Visual Basic

Sub CmdMauDo_Click()

Shp.FillColor=VBRed

End sub

Cho biết tập các hằng số màu cơ bản của VB như hình.

Page 53: 68727097 Giao Trinh Visual Basic

Trang 53/286 Giáo trình Visual Basic

CHƯƠNG 3: BIẾN – HẰNG – CẤU TRÚC LỆNH

NỘI DUNG:

KIỂU DỮ LIỆU - BIẾN – HẰNG - CÁC TOÁN TỬ

CÁC HÀM CƠ BẢN

CÁC CẤU TRÚC LỆNH

OPTION BUTTON – CHECK BOX

LIST BOX – COMBO BOX

1. Các Kiểu Dữ Liệu Trong Vb

Trong VB6 có rất nhiều kiểu dữ liệu. Tuy vậy, với phạm vi giáo trình này, chỉ một số kiểu dữ liệu quan trọng và hay sử dụng nhất được đề cập. Các kiểu còn lại sinh viên có thể tham khảo thêm tại phần giúp đỡ (Help) của bộ Visual Studio.

Kiểu dữ liệu Phạm vi

Byte 0. . 255

Boolean True / False

Integer -32,768 … 32,767

Long (long integer)

Cỡ (+-) 2 tỷ

Double Cỡ (+-)-10308

Date 1/1/100… 31/12/9999

Page 54: 68727097 Giao Trinh Visual Basic

Trang 54/286 Giáo trình Visual Basic

String 2 tỷ ký tự

Variant

Trong đó:

Byte, Integer, Long là các kiểu số nguyên

Double là các kiễu số thực.

Date lưu giá trị ngày giờ (thứ tự ngày tháng năm phụ thuộc vào quy định của hệ thống trong Control Panel của Windows). Một biến kiểu date có thể chứa giá trị ngày tháng năm, giờ hoặc chỉ chứa giá trị ngày tháng năm

Object: để tham chiếu đến một đối tượng nào đó trong chương trình.

String: chứa một chuỗi ký tự.

Variant: Là loại biến có thể chứa bất kỳ một loại dữ liệu số hoặc chuỗi. Kiểu dữ liệu của nó chỉ xác định khi được gán giá trị.

Tùy theo giá trị thực tế, chúng ta sẽ chọn lọai dữ liệu phù hợp.

2. Biến (Variable)

Khái niệm: Dùng để lưu các giá trị tính toán được trong quá trình chương trình đang thực hiện. Giá trị lưu trong biến có thể thay đổi trong quá trình sử dụng. Mỗi biến có một tên để phân biệt và thuộc một loại dữ liệu nào đó.

Qui tắc đặt tên biến:

Page 55: 68727097 Giao Trinh Visual Basic

Trang 55/286 Giáo trình Visual Basic

Dài tối đa 255 ký tự, có thể dùng chữ cái, chữ số, dấu _ để đặt tên

Bắt đầu bằng một chữ cái

Không chứa khoảng trắng và các ký tự: +-*/ ! @ # $ % ^ & * ( ) các dấu chấm câu…

Không trùng tên với từ khóa

Tránh đặt tên biến trùng nhau

Tên biến nên rõ ràng, nói lên phần nào mục đích sử dụng của nó

Nên bắt đầu bằng ba ký tự viết tắt của kiểu dữ lliệu

Khai báo biến:

Dim <tên biến> As <kiểu dữ liệu>

Ví dụ:

Dim X As integer

Dim a As Double

Dim b As Long, D as Long, E as Long

Chú ý: Để khai báo nhiều biến, chúng ta phải đưa kiểu dữ liệu lần lượt vào, không thể viết gom đối với VB6

Ví dụ:

o Dim 1a as Integer: khai báo này sai vì tên biến bắt đầu bằng số

o Dim a- as Integer: khai báo này sai vì tên biến chứa ký tự đặt biệt “-“

Page 56: 68727097 Giao Trinh Visual Basic

Trang 56/286 Giáo trình Visual Basic

o Dim a,b,c as Integer: khai báo này không hợp lý (a,b : không phải kiểu Integer)

o Dim a as Integer, b as Integer, c as Integer: khai báo này đúng

Quản lý biến:

Trong VB có thể không cần phải khai báo biến trước khi sử dụng, vì khi bắt gặp một tên biến chưa khai báo thì VB tự động tạo ra biến này. Tuy nhiên điều này dễ phát sinh các lỗi trong chương trình mà rất khó phát hiện. Ví dụ như trong đoạn lệnh sau:

o Dim x As Integer

o Dim result As Integer

o X=10

o Resul=X*2 ‘Dòng lệnh này ta muốn gán giá trị x*2 vào biến result đã khai báo nhưng lại viết thiếu ký tự ‘t’, lúc này VB sẽ tạo ra biến mới Resul.

Để tránh tình trạng này ta có yêu cầu VB không tự động tạo ra biến nếu như nó chưa được khai báo bằng cách đặt dòng lệnh Option Explicit trong phần General của cửa sổ code.

Vị Trí Khai Báo Và Phạm Vi Sử Dụng Của Biến

Page 57: 68727097 Giao Trinh Visual Basic

Trang 57/286 Giáo trình Visual Basic

Các biến khai báo trong một hàm (SUB): phạm vi sử dụng của các biến này chỉ tồn tại trong SUB khai báo nó.

Những biến này xuất hiện trong bộ nhớ khi SUB được gọi thực hiện và xóa khỏi bộ nhớ khi SUB này thực hiện xong. Biến loại này gọi là biến cục bộ.

Các biến khai báo khai báo trong phần General của một Form thì nó có tác dụng với bất kỳ một đoạn lệnh nào có trong Form này. Những biến này xuất hiện trong bộ nhớ khi Form được mở và chỉ xóa khỏi bộ nhớ khi Form được ở bị đóng.

Page 58: 68727097 Giao Trinh Visual Basic

Trang 58/286 Giáo trình Visual Basic

Một biến muốn có phạm vi sử dụng trong toàn bộ project, thì phải khai báo bằng từ khóa public (có thể khai báo trong Form hoặc module). Những biến này tồn tại trong bộ nhớ từ đầu cho đến khi kết thúc chương trình.

Lưu ý: Các biến kiểu số khi được khởi tạo trong bộ nhơ có giá trị =0

3. Hằng

Ta có thể đặt tên cho các giá trị không đổi và được dùng nhiều trong chương trình theo cú pháp:

Const <Identifier> as datatype = value

Ví dụ:

Cont Pi as Double=3.1416

4. Các Phép Toán

Các phép toán trên số:

Page 59: 68727097 Giao Trinh Visual Basic

Trang 59/286 Giáo trình Visual Basic

Ký hiệu Phép toán

^ Lũy thừa (vd: x=3^8)

- Đảo dấu (vd: x= - y)

* Nhân (vd: x= Y * 3)

/ Chia (vd: x= Y / 3)

+ Cộng (vd: x= Y + 3)

- Trừ (vd: x= Y - 3)

\ Chia Nguyên (vd: x= 34 \ 3)

Mod Lấy dư trong phép chia nguyên

Ví dụ:

Dim A as Integer

A=3^2 ‘ -> A=9

A=12\5 ‘ -> A=2

A = 8 mod 3 -> A=2

Phép toán trên chuỗi (string) : phép nối : & : Dùng để nối 2 chuỗi

Các phép toán quan hệ

Ký hiệu Quan hệ

= Bằng

<> Khác

< Nhỏ hơn

<= Nhỏ hơn hoặc Bằng

Page 60: 68727097 Giao Trinh Visual Basic

Trang 60/286 Giáo trình Visual Basic

> Lớn hơn

>= Lớn hơn hoặc Bằng

Các phép toán luận lý:

Ký hiệu Quan hệ

NOT Phủ định

AND Và

OR Hoặc

5. Các Hàm Cơ Bản Của Vb

Các hàm toán học

Hàm Mô tả

ABS(x) Trả về trị tuyệt đối của x

FIX(x) Trả về giá trị là phần nguyên của x

INT(x) Trả về giá trị là số nguyên lớn nhất nhỏ hơn hay bằng x

EXP(x) Hàm mũ ex

LOG(x) Hàm loge x (cơ số e)

SQR(x) Căn bậc 2 của x

SIN(x) Hàm lượng giác Sin(x)

COS(x) Hàm lượng giác Cos(x)

TAN(X) Hàm lượng giác Tan(x)

ATN(x) Hàm lượng giác Arctg của x

Page 61: 68727097 Giao Trinh Visual Basic

Trang 61/286 Giáo trình Visual Basic

Hàm tạo số ngẫu nhiên (random)

Hàm Mô tả

RANDOMIZE khởi động bộ tạo số ngẫu nhiên

RND( ) Trả về 1 số ngẫu nhiên từ 0 đến 1

Hàm xử lý chuỗi

Hàm Mô tả

LEN(chuỗi) Trả về giá trị là độ dài của chuỗi

VAL(chuỗi) Đổi chuỗi là ký tự số thành số

LEFT(chuỗi,n) Lấy ra 1 chuỗi là n ký tự bên trái của chuỗi nhập vào

RIGHT(chuỗi,n) Lấy ra 1 chuỗi là n ký tự bên phải của chuỗi nhập vào

MID(chuỗi,vị trí, n) Lấy ra 1 chuỗi là n ký tự - bắt đầu từ vị trí nhập - của chuỗi nhập vào

UCASE(chuỗi) Đổi tất cả ký tự chữ thường thành chữ HOA

LCASE(chuỗi) Đổi tất cả ký tự chữ HOA thành chữ thường

LTRIM(chuỗi) Bỏ tất cả ký tự trắng bên trái chuỗi

Page 62: 68727097 Giao Trinh Visual Basic

Trang 62/286 Giáo trình Visual Basic

RTRIM(chuỗi) Bỏ tất cả ký tự trắng bên phải chuỗi

TRIM(chuỗi) Bỏ tất cả ký tự trắng bên trái và bên phải chuỗi

+ Kiểu = 1: Đổi tất cả ký tự chữ thường thành chữ HOA

+ Kiểu = 2: Đổi tất cả ký tự chữ HOA thành chữ thường

STRCONV(chuỗi,kiểu)

+ Kiểu = 3: Đổi tất cả ký tự đầu từ thành thành chữ Hoa….

INSTR(chuỗi, chuỗi 1)

Trả về vị trí đầu tiên của chuỗi 1 bên trong chuỗi ( 0 nếu không có). Dùng để tìm kiếm 1 chuỗi bên trong 1 chuỗi khác.

STR(số) Đổi giá trị của biêu thức số thành chuỗi

FORMAT(biểu thức số, chuỗi định dạng)

In giá trị biểu thức số theo chuỗi định dạng.

Hàm kiểm tra giá trị

Isnumeric(chuoi) Trả về true/false để xác định chuỗi phải là dạng số hay không

IsDate(chuoi) Trả về true/false để xác định chuỗi phải là dạng DateTime hay không

Hàm ký tự

ASC(ký tự): Trả về giá trị là mã ASCII của ký tự

Page 63: 68727097 Giao Trinh Visual Basic

Trang 63/286 Giáo trình Visual Basic

CHR(ASCII Code): Trả về ký tự có mã ASCII là ASCII Code

SPACE(n): Trả về n ký tự trắng

Hàm màu sắc

RGB(Red,Green,Blue): Với Red,Green,Blue có giá trị từ 0 đến 255

QBCOLOR(color):

Với Color có giá trị từ 0 đến 15

0: Black, 1: Blue, 2: Green, 3: Cyan, 4: Red, 5: Magenta, 6: Yellow, 7: White, 8: Gray, 9:Light Blue, 10: Light Green, 11: Light Cyan, 12: Light Red,

13: Light Magenta, 14: Light Yellow, 15: Light White

Hàm nhập dữ liệu inputbox

Mục đích: Hiện hộp nhập dữ liệu khi có nhu cầu

Cú pháp:

Biến = InputBox ( Prompt, Title, Default)

Prompt: Câu nhắc (dạng chuỗi) yêu cầu thực hiện việc nhập

Title: Tựa đề của hộp nhập dữ liệu

Default: Giá trị mặc nhiên khi hiện hộp nhập dữ liệu lên

Kết quả của việc nhập liệu được gán vào biến

Page 64: 68727097 Giao Trinh Visual Basic

Trang 64/286 Giáo trình Visual Basic

Ví dụ: n=Inputbox(“Nhap vào một số:”,”Nhập liệu)

Nếu người sử dụng Click vào nút Cancel thì kết quả của hàm là một chuỗi rỗng.

Ví dụ: Viết chương trình nhập một tên bằng Inputbox và hiển thị lại tên đã nhập

Hàm tạo hộp thông báo msgbox

Mục đích: Hiện hộp thông báo khi có yêu cầu trong các tình huống khác nhau.

Cú pháp:

Page 65: 68727097 Giao Trinh Visual Basic

Trang 65/286 Giáo trình Visual Basic

Dạng 1: Không nhận về gíá trị sau khi hộp thoại xuất hiện. Thường dùng khi thông báo một thông điệp nào đó.

MsgBox “Có Lỗi”

Để hiển thị chuỗi thông báo xuống hàng, chúng ta có thể ghép thêm hằng số VBCrlf hay VBNewline hay Chr(13) & Chr(10) ngắt thông báo thành nhiều hàng

MsgBox "Chào bạn” & vbCrLf & "DurianGroup”

MsgBox "Chào bạn” & VbNewLine & "DurianGroup”

MsgBox "Chào bạn” & Chr(13) & Chr(10) & "DurianGroup”

Dạng 2:

Biến= MsgBox ( Prompt, Style, Title )

Prompt: Câu nhắc (dạng chuỗi) yêu cầu thực hiện việc nhập

Title: Tựa đề của hộp nhập dữ liệu

Style: Kiểu thể hiện của hộp hội thoại

Giá trị số

Giá trị do VB định nghĩa

Mục Đích

0 VbOKOnly Nút lệnh OK

1 VbOKCancel Nút lệnh OK + CanCel

2 VbAbortRetryIgnore Nút lệnh Abort + Retry + Ignore

3 VbYesNoCancel Nút lệnh Yes + No + CanCel

Page 66: 68727097 Giao Trinh Visual Basic

Trang 66/286 Giáo trình Visual Basic

4 VbYesNo Nút lệnh Yes + No

5 VbRetryCancel Nút lệnh Retry + Cancel

16 VbCritical Biểu tượng Stop

32 VbQuestion Biểu tượng Question

48 VbExclamation Biểu tượng Exclamation

64 VbInFormation Biểu tượng InFormation

Các giá trị trả về cho biến của MsgBox:

GIÁ TRỊ SỐ

GIÁ TRỊ DO VB ĐỊNH NGHĨA

HIỆN TƯỢNG

1 VbOK Nút lệnh được chọn là: OK

2 VbCancel Nút lệnh được chọn là: CanCel

3 VbAbort

Nút lệnh được chọn là: Abort

4 VbRetry Nút lệnh được chọn là: Retry

5 VbIgnore Nút lệnh được chọn là: Ignore

6 VbYes Nút lệnh được chọn là: Yes

Page 67: 68727097 Giao Trinh Visual Basic

Trang 67/286 Giáo trình Visual Basic

7 VbNo Nút lệnh được chọn là: No

Giả sử muốn tạo hộp thoại sau: ta sử dụng lệnh:

traloi=MsgBox(“Bạn có muốn tiếp tục không”,VbYesNo+VbQuestion,”Stop”)

Hoặc

traloi= MsgBox(“Bạn có muốn tiếp tục không”,36,”Stop”)

Tuy 2 cách tạo trên là tương đương, nhưng chúng ta nên sử dụng cách thứ nhất vì nó rõ ràng, dễ đọc, và VB giúp chúng ta thực hiện điều này mà không cần phải nhớ số.

Page 68: 68727097 Giao Trinh Visual Basic

Trang 68/286 Giáo trình Visual Basic

6. Các Cấu Trúc Lệnh

A. Cấu trúc rẽ nhánh If – Select case

1. Cấu trúc rẽ nhánh không đầy đủ IF…THEN…

Page 69: 68727097 Giao Trinh Visual Basic

Trang 69/286 Giáo trình Visual Basic

Dạng 1: Chỉ làm 1 lệnh duy nhất nếu thỏa điều kiện

Ví dụ: Viết code cho nút lệnh Thoát của chương trình. Trước khi thoát, chương trình hiển thị hộp thoại xác nhận việc thoát chương trình. Nếu người sử dụng đồng ý (chọn Yes) thì chương trình kết thúc.

Dạng 2: Làm nhiều lệnh nếu thỏa điều kiện

Page 70: 68727097 Giao Trinh Visual Basic

Trang 70/286 Giáo trình Visual Basic

Ví dụ: Viết lại nút lệnh thoát cho ví dụ trên. Nếu nguời sử dụng chọn Yes (đồng ý thoát), chương trình hiển thị lời chào tạm biệt, sau đó thoát chương trình.

Page 71: 68727097 Giao Trinh Visual Basic

Trang 71/286 Giáo trình Visual Basic

2. Cấu trúc rẽ nhánh đầy đủ IF…THEN…ELSE…

Dạng 1: Thực thi các lệnh a1,a2..aN nếu thỏa điều kiện, ngược lại thực hiện nhóm lệnh b1,b2,..bN

Ví dụ: Viết chương trình nhập vào 1 số nguyên. Kiểm tra số vừa nhập là số chẵn hay số lẻ.

Giao diện được cho như hình dưới.

Tên các đối tượng là txtso, cmdKiemTra

Page 72: 68727097 Giao Trinh Visual Basic

Trang 72/286 Giáo trình Visual Basic

Dạng 2: Làm nhiều trường hợp với nhiều điều kiện khác nhau

Page 73: 68727097 Giao Trinh Visual Basic

Trang 73/286 Giáo trình Visual Basic

Ví dụ: viết chương trình nhập 1 số nguyên của thứ (2, 3, 4….8). Chương trình sẽ thực hiện đọc sang Thứ tương ứng (THU HAI, THU BA, THU TU…..)

Page 74: 68727097 Giao Trinh Visual Basic

Trang 74/286 Giáo trình Visual Basic

Page 75: 68727097 Giao Trinh Visual Basic

Trang 75/286 Giáo trình Visual Basic

7. Bài tập thực hành If

Thiết kế một chương trình đăng nhập (Log In) cho phép người sử dụng đánh tên và mật mã (Password) vào sau đó kiểm tra xem password có đúng với chuỗi được quy định trước hay không?

Thiết kế giao diện

Tạo các control (label, textbox, command button) như hình

Đặt tên lần lượt là TxtUser, TxtPassword, cmdOK,CmdCancel

Thiết lập thuộc tính PasswordChar cho txtPassword là * (che ký tự nhập vào)

Viết code cho chương trình

Page 76: 68727097 Giao Trinh Visual Basic

Trang 76/286 Giáo trình Visual Basic

Ví dụ: Viết chương trình giải phương trình bậc nhất Ax+B=0

Option Explicit

Private Sub Form_Load()‘Lưu ý: sử dụng sự kiện load để cài đặt các yếu tố ban đầu

lbl_tua.Caption = "CHƯƠNG TRÌNH" & Chr(13) & " GIẢI PHƯƠNG TRÌNH BẬC I Ax+B=0" ‘Sử dụng ký tự chr(13) để xuống dòng

txt_A.Text = ""

txt_b.Text = ""

txt_kq.Text = ""

End Sub

Private Sub cmd_giai_Click()

If txt_A.Text = "" Or txt_b.Text = "" Then

MsgBox "Bạn chưa nhập đủ dữ liệu "

ElseIf Val(txt_A.Text) <> 0 Then

txt_kq.Text = "Nghiệm của PT là: " & Val(txt_b.Text) / Val(txt_A.Text)

ElseIf Val(txt_b.Text) = 0 Then

txt_kq.Text = "Phương trình vô số nghiệm"

Else

txt_kq.Text = "Phương trình vô nghiệm"

End If

Page 77: 68727097 Giao Trinh Visual Basic

Trang 77/286 Giáo trình Visual Basic

End Sub

Private Sub cmd_moi_Click()

txt_A.Text = ""

txt_b.Text = ""

txt_kq.Text = ""

txt_A.SetFocus ‘Chuyển focus về textbox txt_a để tiện lợi cho người sử dụng nhập liệu

End Sub

Private Sub cmd_kt_Click()

End

End Sub

3. Cấu trúc lựa chọn SELECT CASE … END SELECT

Ví dụ: thực hiện lại ví dụ nói trên, xuất ra màn hình chuỗi phát âm của thứ nhập vào

Page 78: 68727097 Giao Trinh Visual Basic

Trang 78/286 Giáo trình Visual Basic

B. Cấu Trúc Lặp For – While – Do While

1. Cấu trúc lặp FOR…NEXT

Chú ý: Có thể sử dụng lệnh Exit For để thoát sớm khỏi vòng lặp FOR

Ví dụ: Viết chương trình nhập vào 1 số (n) và tính tổng:

S=1+2+3+…n

Page 79: 68727097 Giao Trinh Visual Basic

Trang 79/286 Giáo trình Visual Basic

Ví dụ: Viết chương trình nhập vào 1 số (n) và xuất chuỗi các số 1 2 3 …n lên màn hình

Huu Anh
Typewriter
Huu Anh
Typewriter
(doi kp txt thanh dang chuoi)
Page 80: 68727097 Giao Trinh Visual Basic

Trang 80/286 Giáo trình Visual Basic

2. Cấu trúc lặp DO WHILE … LOOP

Chú ý: Trong vòng lặp phải có lệnh tác động lên điều kiện để vòng lặp không lặp vô tận

Page 81: 68727097 Giao Trinh Visual Basic

Trang 81/286 Giáo trình Visual Basic

Chú ý : Vòng lặp Do While thực hiện kiểm tra địều kiện trước. Nếu thỏa điều kiện thì mới thực thi.

Ví dụ: Ví dụ: Viết chương trình nhập vào 1 số (n) và xuất chuỗi các số 1 2 3 …n lên màn hình

Page 82: 68727097 Giao Trinh Visual Basic

Trang 82/286 Giáo trình Visual Basic

3. Cấu trúc lặp DO. .. LOOP UNTIL:

Chú ý : Vòng lặp Do …Loop Until không thực hiện kiểm tra địều kiện trước, mà thực hiện lệnh trước, sau đó mới kiểm tra điều kiện để quyết định có thực hiện tiếp hay không. Do đó, nó thực hiện ít nhất 1 lần.

Page 83: 68727097 Giao Trinh Visual Basic

Trang 83/286 Giáo trình Visual Basic

Ví dụ: viết chương trình nhập số bằng hộp thoại Inputbox. Khi người sử dụng nhập 1 số, chương trình hiển thị vào label lblKetqua. Nếu người sử dụng nhập khác số, chương trình kết thúc việc nhập.

Page 84: 68727097 Giao Trinh Visual Basic

Trang 84/286 Giáo trình Visual Basic

Ví dụ: Chương trình xác định số nguyên tố:

Option Explicit

Private Sub cmd_giai_Click()

Dim i As Integer, n As Integer, so As Integer

If txt_nhap.Text <> "" Then

so = Val(txt_nhap.Text)

n = Int(Sqr(so))

i = 2

Do While i <= n And so Mod i <> 0

i = i + 1

Page 85: 68727097 Giao Trinh Visual Basic

Trang 85/286 Giáo trình Visual Basic

Loop

If i > n Then

txt_kq = so & " là số nguyên tố"

Else

txt_kq = so & " không là số nguyên tố"

End If

Else

MsgBox "Bạn chưa nhập số"

txt_nhap.SetFocus

End If

End Sub

Private Sub Cmd_kt_Click()

End

End Sub

Ví dụ : Chương trình quay số may mắn

Qui luật chơi như sau:

Khi bắt đầu chơi số tiền có trong sẳn máy là 10 đồng và số tiền thưởng là 0. Mỗi lần quay số thì người chơi phải bỏ vào 30 đồng (số tiền có trong máy tăng 30)

Nếu kết quả quay số =0 --> người chơi nhận được cộng 10 đồng vào tiền thưởng

Page 86: 68727097 Giao Trinh Visual Basic

Trang 86/286 Giáo trình Visual Basic

Nếu kết quả quay số =9 --> người chơi được cộng 30 đồng vào tiền thưởng

Nếu kết quả quay số =7 --> người chơi được cộng 100 và 50 % số tiền đang có trong máy vào tiền thưởng (--> số tiền trong máy giảm 50%).

Khi nút Game mới được ấn thì số tiền thưởng phải có giá trị=0

Khi có thưởng thì chương trình phải hiện dòng thông báo cho biết số tiền thưởng hiện tại là bao nhiêu.

Mã lệnh của chương trình như sau:

Option Explicit

Dim thuong As Long, sotien As Long ‘ Khai báo biến toàn cục

Private Sub Form_Load()

sotien = 10

thuong = 0

txt_sotien.Text = sotien

Page 87: 68727097 Giao Trinh Visual Basic

Trang 87/286 Giáo trình Visual Basic

End Sub

Private Sub CMD_QUAYSO_Click()

Dim i as Long, j as Long, t As Long

Randomize

If txt_kq.Visible = True Then

txt_kq.Visible = False

txt_kq.Refresh ‘Cập nhật những thay đổi trên textbox

Form1.Refresh ‘Cập nhật những thay đổi trên Form

End If

sotien = sotien + 30

txt_sotien = sotien

txt_sotien.Refresh

For i = 1 To 60 Step 1

J= Timer Ba dòng lệnh này có tác dụng delay chương trình

Do while Timer<J+1

Loop

txt1.Text = Int(Rnd() * 10)

txt1.Refresh

Next i

t = thuong

If Val(txt1.Text) = 7 Then

t = t + 100 + Int(sotien / 5)

Page 88: 68727097 Giao Trinh Visual Basic

Trang 88/286 Giáo trình Visual Basic

sotien = sotien - Int(sotien / 5)

End If

If Val(txt1.Text) = 9 Then t = t + 30

If Val(txt1.Text) = 0 Then t = t + 10

If t > thuong Then

txt_kq.Visible = True

thuong = t

txt_kq.Text = "Xin chúc mừng bạn. " & Chr(13) & Chr(10) & "Số tiền bạn được thưởng là: " & thuong

txt_kq.Refresh

End If

End Sub

Private Sub Cmd_newgame_click()

thuong = 0

txt_sotien.Text = sotien

End Sub

Private Sub Cmd_kt_Click()

End

End Sub

Page 89: 68727097 Giao Trinh Visual Basic

Trang 89/286 Giáo trình Visual Basic

8. Check Box

Là đối tượng được đặt cho phép người sử dụng chọn giá trị bằng cách đánh dấu chọn (check). Hai trạng thái của check box được sử dụng nhiều nhấtr là: được chọn hoặc không được chọn.

Các thuộc tính của check box:

Name: tên của checkbox với prefix là Chk

Aligment: Quy định vị trí của nút chọn:

o 0: Left justify

o 1: Right justify

Caption: Tiêu đề (dòng văn bản hiện kế nút chọn)

Value: Giá trị của thuộc tính này quy định trạng thái của check box

o 0: Unchecked (không chọn)

o 1: Check (Đang chọn)

o 2: Grayed (không được phép thay đổi trạng thái của check box.

Sự kiện (event) của checkbox

Click: xảy ra khi người sử dụng click trên checkbox

Page 90: 68727097 Giao Trinh Visual Basic

Trang 90/286 Giáo trình Visual Basic

Để biết được Checkbox có chọn hay không, người ta kiểm tra thuộc tính Value

Ví dụ: Viết chương trình với một checkbox dùng để cho phép một hình trên Form được hiển thị hay không

9. Option Button

Có công dụng giống như Chexk box, tuy nhiên khi một nhóm các check box đặt chung với nhau thì ta có thể chọn nhiều trường hợp trong nhóm này hoặc không chọn gì cả, còn trong một nhóm option button

Page 91: 68727097 Giao Trinh Visual Basic

Trang 91/286 Giáo trình Visual Basic

chúng ta chỉ chọn được một trong các trường hợp này mà thôi. Các Option Button đi thành từng nhóm. Mỗi nhóm được đưa vào một Frame (hay đối tượng chứa khác).

Ví dụ

Trong hộp thoại trên có hai nhóm Option button, Aligment và Leader thì trong mỗi nhóm ta chỉ chọn được một trường hợp.

Các thuộc tính của Option button:

Name: tên của Option Button với prefix là Opts

Aligment: Quy định vị trí của nút chọn:

o 0: Left justify

o 1: Right justify

Caption: Tiêu đề (dòng văn bản hiện kế nút chọn)

Value: Giá trị của thuộc tính này quy định trạng thái của option buton

o True: Đang chọn

o False: Không chọn.

Chú ý: Khi một option trong nhóm có giá trị true thì tất cả các option còn lại sẽ có giá trị false

Trong một nhóm các option button, để biết option button nào đang được chọn, chúng ta kiểm tra thuộc tính Value của các option button

Page 92: 68727097 Giao Trinh Visual Basic

Trang 92/286 Giáo trình Visual Basic

hoặc dùng ngay sự kịen click vì khi option button vừa nhận sự kiện click, thì khi đó giá trị Value=True.

Ví dụ.Tạo một chương trình với giao diện như sau:

Trên Form có

Một đối tượng Shape

Một mảng Option button đặt vào trong Frame Shape (Tạo Frame Shape trước, sau đó mới đặt các option button vào frame này)

Một mảng Option button đặt vào trong Frame Color (Tạo Frame color trước, sau đó mới đặt các option button vào frame này)

Một Command button với caption Exit. (Nút này có thuộc tính Cancel bằng True ) dùng để kết thúc chương trình.

Khi một option trong nhóm shape được chọn thì dạng hình của đối

Page 93: 68727097 Giao Trinh Visual Basic

Trang 93/286 Giáo trình Visual Basic

tượng Shape sẽ thay đổi tương ứng (sử dụng thuộc tính shape)

Khi một option trong nhóm Color được chọn thì màu của đối tượng Shape sẽ thay đổi tương ứng (sử dụng thuộc tính Fillcolor và hàm Qbcolor)

10. ListBox

Đối tượng này dùng để liệt kê một danh sách và cho phép người sử dụng chọn lực các mục trong danh sách này.

Các thuộc tính của Listbox:

ListCount: Cho biết số mục hiện có trong ListBox. Thuộc tính này không thể thay đổi đưiợc.

List: Là thuộc tính chính của listbox. Nó lưu gữ các mục của listbox. Các mục của listbox có thể nhập vào tại giai đoạn thiết kế hoặc trong chương trình. Truy xuất các mục trong listBox thông qua thuộc tính list:

Tên_listBox.list(index)

Multiselect:

o 0: Chỉ cho phép chọn mỗi lúc một mục duy nhất

o 1: Cho phép chọn mỗi lúc nhiều mục bằng chuột

Page 94: 68727097 Giao Trinh Visual Basic

Trang 94/286 Giáo trình Visual Basic

o 2: Cho phép chọn mỗi lúc nhiều mục bằng chuột và phím shift hoặc Control

ListIndex: Có giá trị là một con số cho biết mục thứ mấy của listBox đang được chọn. Trong trường hợp list box được phép chọn nhiều mục cùng lúc thì thuộc tính này cho biết thứ tự của mục đầu tiên được chọn.

Selected: Cho biết trạng thái của một mục trong danh sách hiện có được chọn hay không. Hoặc đặt trạng thái chọn cho một mục nào đó.

Cú pháp: Selected(index) Kiểm tra trạng thái của một mục

o Select(index)=True/False Đặt trạng chọn hoặc không chọn cho một mục trong danh sách.

Text: Nội dung của mục đang chọn trong listbox

Sorted: Quy định các mục trong ListBox có sắp xếp theo thứ tự hay không

Các phương thức (method) của Listbox:

AddItem: Thêm một mục mới vào danh sách.

o Cú pháp: Tên_ListBox.AddItem item[,Index]

RemoveItem: Xóa một mục trong ListBox

o Cú pháp: Tên_ListBox.RemoveItem index

o Index: số thứ tự của mục cần xóa.

Clear: Xóa toàn bộ các mục trong danh sách. Sau khi xóa giá trị Listcount=0

Cú pháp: Tên_ListBox.Clear

Page 95: 68727097 Giao Trinh Visual Basic

Trang 95/286 Giáo trình Visual Basic

Ví dụ: Viết chương trình nhập danh sách sinh viên theo yêu cầu sau:

Các ListBox được phép chọn nhiều mục (kết hợp giữa phím Shift, Control và chuột)

Các nút Cmd1 và Cmd3 Khi được Click sẽ sao chép tất cả các mục đang chọn sang ListBox bên kia, sau đó xóa các mục đang chọn

Nút lệnh Xóa cho phép xóa các mục đang chọn trong Lst1 (ListBox bên trái)

Page 96: 68727097 Giao Trinh Visual Basic

Trang 96/286 Giáo trình Visual Basic

Option Explicit

Private Sub Cmd_exit_Click()

End

End Sub

Private Sub Cmd1_Click()

If Lst1.ListIndex <> -1 Then

Lst2.AddItem Lst1.List(Lst1.ListIndex)

Lst1.RemoveItem Lst1.ListIndex

End If

End Sub

Private Sub Cmd2_Click()

Dim i As Integer

For i = 0 To Lst1.ListCount - 1

Lst2.AddItem Lst1.List(i)

Page 97: 68727097 Giao Trinh Visual Basic

Trang 97/286 Giáo trình Visual Basic

Next

Lst1.Clear

End Sub

Private Sub Cmd3_Click()

If Lst2.ListIndex <> -1 Then

Lst1.AddItem Lst2.List(Lst2.ListIndex)

Lst2.RemoveItem Lst2.ListIndex

End If

End Sub

Private Sub Cmd4_Click()

Dim i As Integer

For i = 0 To Lst2.ListCount - 1

Lst1.AddItem Lst2.List(i)

Next

Lst2.Clear

End Sub

Private Sub Command2_Click()

Dim Traloi As Byte

Traloi = MsgBox("Bạn có chắn chưa ", 32 + 4, "VB msgbox")

If Traloi = 6 Then Lst1.Clear

End Sub

Private Sub Command5_Click()

Lst1.AddItem txt1.Text

Page 98: 68727097 Giao Trinh Visual Basic

Trang 98/286 Giáo trình Visual Basic

txt1.Text = ""

txt1.SetFocus

End Sub

Private Sub Lst1_DblClick()

If Lst1.ListIndex <> -1 Then

Lst2.AddItem Lst1.List(Lst1.ListIndex)

Lst1.RemoveItem Lst1.ListIndex

End If

End Sub

Private Sub Lst2_DblClick()

If Lst2.ListIndex <> -1 Then

Lst1.AddItem Lst2.List(Lst2.ListIndex)

Lst2.RemoveItem Lst2.ListIndex

End If

End Sub

11. Combo Box

Combo Box là một control kết hợp giữa Textbox và Listbox, nên nó có cac đặc tính của cả hai đối tượng này. Combo Box cho phép trình bày, chọn các mục có trong danh sách và có thể nhập thêm các mục mới.

Ngoài các thuộc tính giống như ListBox, Combo Box còn có thuộc tính đặc trưng là:

Page 99: 68727097 Giao Trinh Visual Basic

Trang 99/286 Giáo trình Visual Basic

Style: Dùng để quy định kiểu của ComboBox

o 0 : Kiểu ComboBox chuẩn, chỉ trình bày listbox khi kích chuột vào mũi tên bên phải

o 1 : Kiểu này luôn thể hiện listbox của nó bên dưới TextBox

o 2 : Cách sử dụng giống như một listbox (Không thể nhập trên textbox) chỉ khác ở cách trình bày.

Text: Nội dung đang có trong phần Textbox.

Ví dụ: Viết chương trình có sử dụng CheckBox và OptionButton theo yêu cầu sau:

Thêm trên Form hai Image có tên Img5 và Img6, một ListBox có tên Lst1 (nằm trong frame peripherals), một ComBoBox có tên Cmb1(nằm trong frame Payment method).

Các mục của Lst1 và Cmp1 là:

Lst1:

Extra hard disk

Printer

Cmb1:

US. Dollars

L 1

Page 100: 68727097 Giao Trinh Visual Basic

Trang 100/286 Giáo trình Visual Basic

Check

English Pound

Các mục này được đưa vào Lst1 và Cmb1 khi Formload (sử dụng sự kiện Formload)

Khi mục Extra hard disk của Lst1 được chọn thì picture trong Img5 là:

c:\program files\Microsoft visual studio\ common\ graphics\ metafile\ business \Harddisk.wmf

Khi mục Printer của Lst1 được chọn thì picture trong Img5 là:

…Printer.wmf (cùng folder với file hình trên)

Khi mục US.dollars của Cmb1 được chọn thì picture trong Img6 là:

…dollar.wmf

Khi mục Check của Cmb1 được chọn thì picture trong Img6 là:

…check.wmf

Khi mục English Pound của Cmb1 được chọn thì picture trong Img6 là:

…poundbag.wmf

Page 101: 68727097 Giao Trinh Visual Basic

Trang 101/286 Giáo trình Visual Basic

Option Explicit

Private Sub chk1_Click()

If chk1.Value = 1 Then

img1.Visible = True

Else

img1.Visible = False

End If

End Sub

Page 102: 68727097 Giao Trinh Visual Basic

Trang 102/286 Giáo trình Visual Basic

Private Sub Chk2_Click()

If Chk2.Value = 1 Then

img2.Visible = True

Else

img2.Visible = False

End If

End Sub

Private Sub Chk3_Click()

If Chk3.Value = 1 Then

img3.Visible = True

Else

img3.Visible = False

End If

End Sub

Private Sub Cmb1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

cmb1.AddItem cmb1.Text

cmb1.Text = ""

End If

End Sub

Private Sub opt1_Click(Index As Integer)

Dim i As Byte

Select Case Index

Page 103: 68727097 Giao Trinh Visual Basic

Trang 103/286 Giáo trình Visual Basic

Case 0

Image2.Picture = LoadPicture("c:\program files\Microsoft visual studio\common\graphics\metafile\business\pcomputr.wmf")

Case 1

Image2.Picture = LoadPicture("…computer.wmf") ‘đường dẫn như trên

Case 2

Image2.Picture = LoadPicture("…laptop2.wmf")

End Select

End Sub

Page 104: 68727097 Giao Trinh Visual Basic

Trang 104/286 Giáo trình Visual Basic

12. Bài Tập

Lưu ý: Mỗi bài tập nên tạo trên dĩa một folder để lưu những tập tin project, Form.. của bài tập đó.

1. Viết chương trình giải phương trình bậc 2 : ax2 + bx + c = 0

2. Viết chương trình giải phương trình trùng phương: ax4 + bx2 + c = 0

3. Viết chương trình Đổi năm dương lịch qua năm âm lịch

Cho Biết:

Năm MOD 10 = 0…9: ==> Canh - Tân – Nhâm – Quý – Giáp – At – Bính – Đinh – Mậu - Kỷ

Năm MOD 12 = 0…11: ==> Thân – Dậu – Tuất – Hợi – Tý – Sửu – Dần – Mẹo – Thìn – Tỵ – Ngọ – Mùi

4. Viết chương trình tính tổng N số nguyên dương đầu tiên: 1+ 2+ 3+. .N (N là số nguyên nhập từ bàn phím)

5. Viết chương trình tính tổng N số nguyên dương chẵn đầu tiên: 2 + 4 + 6 +...

6. Viết chương trình nhập vào 2 số nguyên a, b. Xuất ra BSCNN và USCLN của a và b.

7. Viết lại chương trình quay số may mắn theo mẫu sau:

Page 105: 68727097 Giao Trinh Visual Basic

Trang 105/286 Giáo trình Visual Basic

Khi chương trình bắt đầu chạy thì số tiền có trong máy là 100 đồng.

Mỗi lần quay số người chơi phải bỏ vào máy 30 đồng (số tiền trong máy tăng 30 đồng mỗi lần quay số)

Các hộp chứa chữ số từ trái qua phải có tên như sau: txt1, txt2, txt3.

Giá tri trong hộp số được tạo bởi công thức:

txt1.Text = Int(Rnd() * 7)

txt2.Text = Int(Rnd() * 8)

txt3.Text = Int(Rnd() * 10)

Nếu kết quả của txt1 = 7 thì số tiền được thưởng là 100 +50% số tiền đang có trong máy (số tiền trong máy giảm 50%)

Nếu kết quả của txt2 = 7 thì số tiền được thưởng là 30 +10% số tiền đang có trong máy (số tiền trong máy giảm 10%)

Nếu kết quả của txt1 = 7 thì số tiền được thưởng là 10.

Khi trúng thưởng thì số tiền thưởng được cộng dồn và sẽ hiện lên màn hình cho người chơi biết số tiền thưởng mà họ đang có.

Page 106: 68727097 Giao Trinh Visual Basic

Trang 106/286 Giáo trình Visual Basic

Khi nút Game mới được click (bắt đầu cho một người chơi khác) thì số thưởng quay về 0

8. Viết chương trình tạo một Form như sau:

Nút cập nhật có thuộc tính Default=true

Nút Kết thúc có thuộc tính Cancel=true

Khi người sử dụng nhập một số vào textbox rồi Enter hoặc nhấp vào nút cập nhật thì số này được thêm vào listbox, đồng thời nội dung trong textbox bị xóa và focus được chuyển về textbox

Tính tổng các phần tử của List (hiển thị kết quả trên msgbox)

Xóa phần tử đầu và cuối

Xóa phần tử đang chọn

Page 107: 68727097 Giao Trinh Visual Basic

Trang 107/286 Giáo trình Visual Basic

Tăng mỗi phần tử lên 2 đơn vị

Thay thế mỗi phần tử bằng bình phương của chính nó

Chọn phần tử chẳn

Chọn phần tử lẻ

9. Viết chương trình đổi màu của Form như sau: khi chọn vào Option nào, thì màu của Form sẽ thay đổi tương ứng với màu của Option đó.

10. Viết chương trình thay đổi font chữ của textbox

Yêu cầu: Khi chọn vào thanh cuốn, Option, hay CheckBox nào, thì thuộc tính tương ứng của TextBox sẽ thay đổi tương ứng với các mục chọn lựa.

Page 108: 68727097 Giao Trinh Visual Basic

Trang 108/286 Giáo trình Visual Basic

11. Viết chương trình thay đổi hình dạng – kiểu tô nền của hình (Shape)

Các Option button dùngđể thay đổi hình dạng hay kiểu tô nền của hình vẽ.

12. Yêu cầu:

Khi chọn các Options ứng với các quốc gia khác nhau, thì sẽ hiển thị cờ tương ứng với quốc gia đó. (Các icon hình ảnh trong thư mục: Graphics\icons\flags)

Page 109: 68727097 Giao Trinh Visual Basic

Trang 109/286 Giáo trình Visual Basic

13. Viết chương trình theo yêu cầu:

Chọn tên người bạn có sẵn từ combobox

Chương trình tự tìm số điện thoại và địa chỉ.

Page 110: 68727097 Giao Trinh Visual Basic

Trang 110/286 Giáo trình Visual Basic

Page 111: 68727097 Giao Trinh Visual Basic

Trang 111/286 Giáo trình Visual Basic

CHƯƠNG 4: THỦ TỤC

NỘI DUNG:

HÀM FORMAT

THỦ TỤC – HÀM - MẢNG – CHUỖI

MẢNG ĐỐI TƯỢNG

TIMER

DEBUG VÀ IN ẤN CHƯƠNG TRÌNH

1. Hàm Format

Công dụng của hàm là định dạng một giá trị theo một mẫu nào đó. Kết quả của hàm là chuỗi giá trị đã định dạng. Cú pháp của hàm: Format(Value, Format).

Value: Giá trị muốn định dạng

Format: Mẫu định dạng, sẽ chứa những ký tự định dạng như:

0 - Tại vị trí này là một chữ số. Nếu con số mà chúng ta cần định dạng không có giá trị tại vị trí này thì chữ số 0 sẽ được điền vào.

o Ví dụ: Format$(123,”0000”)=”0123”

# - Quy định tại vị trí đó là một con số bất kỳ.

. - Dấu ngăn cách phần thập phân với phần nguyên

, - Dấu cách ngàn

% - Nếu có ký hiệu này trong chuỗi định dạng thì con số sẽ được nhân lên 100 và thêm ký hiệu % phía sau

Page 112: 68727097 Giao Trinh Visual Basic

Trang 112/286 Giáo trình Visual Basic

Ngoài các ký tự trên nếu trong chuỗi định định dạng chứa bất kỳ một ký tự nào khác thì ký tự đó sẽ được chèn vào trong chuỗi kết quả.

Các ví dụ:

Format$(8315.4,”######.##”)=”8315.4”

Format$(8315.4,”###,###.00”)=”8,315.40”

Format$(8315.4,”$######.00”)=”$8,315.40”

Format$(0.5 ,”000%”)=”050%”

2. Thủ Tục – Hàm

Ngoài các thủ tục sự kiện gắn liền với các đối tượng đôi khi người lập trình cần phải xây dựng thêm các thủ tục của riêng mình để dễ dàng trong việc lập chương trình, chẳng hạn như giảm bớt mã lệnh, tránh viết lập đi lặp lại một đoạn lệnh nào đó.

1. Thủ tục (Sub):

Ta có thể viết một thủ tục trong cửa sổ Code với cú pháp khai báo như sau:

Private Sub <tên thủ tục>[(danh sách tham số)]

Lệnh của thủ tục

End sub

Thủ tục được khai báo với từ khóa private thì chỉ có thể dùng được trong phạm vi Form chứa nó mà thôi. Nếu muốn thủ tục có thể sử dụng trong toàn bộ chương trình (các Form khác đều sử dụng được) thì phải khai báo với từ khóa Public

Public Sub <tên thủ tục>[(danh sách tham số)]

Page 113: 68727097 Giao Trinh Visual Basic

Trang 113/286 Giáo trình Visual Basic

Lệnh của thủ tục

End sub

Ví dụ:

Private Sub Hienthi(x As Integer)

Print x*x*x

Sub

Lời gọi thủ tục: Ta có thể dùng lệnh call để gọi thực hiện một thủ tục theo cú pháp: call <tên thủ tục>

Tham số của thủ tục: Tham số của thủ tục được khai báo trong ngoặc sau tên thủ tục.

Nếu là tham số dạng tham trị thì có thêm từ khóa byval trước tên tham số. Giá trị không thể thay đổi sau khi ra khỏi hàm.

Nếu là tham số dạng tham biến thì có thêm từ khóa byref trước tên tham số. Giá trị được thay đổi sau khi ra khỏi hàm.

Nếu không chỉ rõ là tham trị hay tham biến thì xem như tham biến.

Page 114: 68727097 Giao Trinh Visual Basic

Trang 114/286 Giáo trình Visual Basic

Ví dụ: Chương trình gọi hàm với tham biến (byref) và tham trị (byval)

Trong hàm sub1(A as Integer,Byval B as Integer) thì A là tham biến, B là tham trị. Do đó, chỉ có kết quả của txt3 khác giá trị txt1 (gấp 10 lần) còn giá trị của txt4 và txt2 là bằng nhau.

Page 115: 68727097 Giao Trinh Visual Basic

Trang 115/286 Giáo trình Visual Basic

Ví dụ: viết chương trình đếm số lần Click trên một Form. Khi người sử dụng Click chuột trên Form, chương trình sẽ tăng biến đếm số click, và reset về 0 khi số lần click quá 4.

o Chương trình sử dụng hàm CheckNumberofClick với 1 tham biến là Numclick. Ở đây không cần khai báo byref do mặc định là byref.

1. Hàm (Function): Việc viết một hàm cũng giống như thủ tục chỉ khác ở phần khai báo và trong nội dung của hàm sẽ có một câu lệnh trả giá trị về cho hàm.

Ta có thể viết một hàm trong cửa sổ Code với cú pháp khai báo như sau:

[Private/Public] Function <tên hàm>[(danh sách tham số)] As <Kiểu dữ liệu>

Page 116: 68727097 Giao Trinh Visual Basic

Trang 116/286 Giáo trình Visual Basic

Lệnh của hàm

Tên hàm=Giá trị trả về

End Funtion

Ví dụ: Viết chương trình tính cạnh huyền tam giác sử dụng function

Page 117: 68727097 Giao Trinh Visual Basic

Trang 117/286 Giáo trình Visual Basic

Ví dụ: viết hàm tính giai thừa n!=1*2*3*….n và vận dụng hàm này để viết chương trình sau đây.

Option Explicit

Private Function Giaithua(ByVal K As Integer) As Double

Dim I As Integer

Dim Kq As Double

Kq = 1

For I = 1 To K

Kq = Kq * I

Next

Giaithua = Kq

End Function

Private Sub Cmd_exit_Click()

End

End Sub

Private Sub Cmd_N_Click()

Txt_ketqua = Txt_nhaplieu.Text & "!= " & Format(Giaithua(Val(Txt_nhaplieu.Text)), "#")

Txt_nhaplieu.Setfocus

End Sub

Private Sub Cmd_n1_Click()

Page 118: 68727097 Giao Trinh Visual Basic

Trang 118/286 Giáo trình Visual Basic

Dim N As Integer

N = Val(Txt_nhaplieu.Text)

Txt_ketqua = N & "! /" & N + 1 & "! =" & Format(Giaithua(N) / Giaithua(N + 1), "0.###")

Txt_nhaplieu.Setfocus

End Sub

Chú ý là, ở nút lệnh thứ hai, nếu để ý thì chúng ta thấy rằng kết quả không cần tính dài dòng như vậy mà chỉ là 1/(n+1). Tuy nhiên, chương trình này có ý đồ mô tả cách sử dụng là nhiều lần khi viết một hàm.

Ví dụ: cho biết kết quả xuất ra sau khi thực hiện chương trình sau đây là gì

Page 119: 68727097 Giao Trinh Visual Basic

Trang 119/286 Giáo trình Visual Basic

3. Mảng

Mảng tĩnh 1 chiều

Khai báo: Dim ArrayName(LowerIndex To UperIndex) As <Kiểu dữ liệu>

Ví dụ:

Dim strTen(0 to 25) As String: strTen(0), strTen(1),… strTen(25)

Dim SoThuc(1 to 100) As Double: SoThuc(1), SoThuc(2)… SoThuc(100)

Dim Volume(-10 to 10) As Long: Volume(-10), Volume(-9), Volume(10)

Ví dụ: Mảng numbers chứa các số nguyên được đánh số từ 0..5

Lưu ý: Khi truy xuất mảng phải truy xuất đúng với cận trên và cận dưới đã khai báo.

Ví dụ: nếu khai báo Dim a(10 to 20) Thì không có phần tử a(1),a(2)..a(9).

Để xác định cận dưới của mảng dùng Hàm Lbound(TênMảng) :

Để Xác định cận trên của mảng: Hàm Ubound(TênMảng) : Text1.Text=Ubound(StrTen)

Page 120: 68727097 Giao Trinh Visual Basic

Trang 120/286 Giáo trình Visual Basic

Khi khởi tạo, các giá trị trong mảng được khởi tạo mặc định bằng 0 (đối với kiểu số) hay bằng chuỗi rỗng (đối với kiểu chuỗi).

Truy xuất mảng

Để truy xuất một phần tử trong mảng ta truy xuất theo cú pháp TenMang(chỉ số)

Để duyệt hết mảng, sử dụng vòng lặp For..Next với 1 biến chạy

Ví dụ: Viết chương trình xử lý mảng như sau

Nhập xuất mảng:

Option Explicit

Dim a(1 To 10) As Integer

Sub Cmd_nhap_Click()

Dim i As Integer

Txt_xuat.Visible = False

For i = 1 To 10 Step 1

a(i) = Val(InputBox("a(" & Str(i) & ")= ", "Nhap mang"))

Next

End Sub

Sub Cmd_xuat_Click()

Dim i As Integer

Txt_xuat.Visible = True

Page 121: 68727097 Giao Trinh Visual Basic

Trang 121/286 Giáo trình Visual Basic

For i = 1 To 10

Txt_xuat.Text = Txt_xuat.Text & Str(a(i)) & " "

Next

End Sub

Private Sub Form_Load()

Txt_xuat.Visible = False

End Sub

Ví dụ: Nhập và xuất mảng ra ListBox

Khi chương trình vừa thực hiện:

Khi nút nhập mảng được bấm:

Page 122: 68727097 Giao Trinh Visual Basic

Trang 122/286 Giáo trình Visual Basic

Khi đã nhập xong:

Page 123: 68727097 Giao Trinh Visual Basic

Trang 123/286 Giáo trình Visual Basic

Khi bút Xuất mảng được ấn:

Mảng nhiều chiều tĩnh

Có thể là mảng 2 chiều, 3 chiều. Mảng 2 chiều có thể được coi như ma trận.

Khai báo: Tương tự mảng 1 chiều:

o Dim a(1 to 2,1 to 3) As Integer

o A(1,1), A(1,2), A(1,3) ; A(2,1), A(2,2), A(2,3)

Xác định cận dưới của mảng: Hàm Lbound(TênMảng,chiều) : Text1.Text=Lbound(A,1)

Xác định cận trên của mảng: Hàm Ubound(TênMảng, chiều) : Text1.Text=Ubound(A,2)

Khi duyệt mảng nhiều chiều sử dụng các vòng lặp lồng vào nhau.

Page 124: 68727097 Giao Trinh Visual Basic

Trang 124/286 Giáo trình Visual Basic

Ví dụ: để duyệt nửa trên ma trận 2 chiều, không tính đường chéo chính

Ví dụ: để duyệt nửa trên ma trận 2 chiều, tính cả đường chéo chính

Page 125: 68727097 Giao Trinh Visual Basic

Trang 125/286 Giáo trình Visual Basic

Mảng động

Mảng tĩnh là mảng có số phần tử không đổi sau khi khai báo mảng

Mảng động là mảng có số phần tử có thể thay đổi được sau khi khai báo mảng, trong quá trình thực thi chương trình.

Khai báo mảng động:

o Dim A() as Integer

Thay đổi số phần tử trong mảng: tương tự khai báo mảng

o ReDim A(5 To 10)

o ReDim A(1 to 10)

Do đó, sau khi khai báo mảng động : Dim A() as Integer, chưa thể dùng ngay mà phải khai báo số phần tử mảng động lúc đầu tiên: ReDim A(10). Đến lúc nào cần thay đổi kích thước vị trí mảng thì ReDim lại.

Xác định cận dưới của mảng: Hàm Lbound(TênMảng,chiều)

Xác định cận trên của mảng: Hàm Ubound(TênMảng, chiều)

Private Sub Command1_Click()

ReDim b(3)

For i = 0 To 3

b(i) = i

Private Sub Command4_Click()

ReDim b(5)

For i = 0 To 5

b(i) = i

Next

Page 126: 68727097 Giao Trinh Visual Basic

Trang 126/286 Giáo trình Visual Basic

Next

End Sub

End Sub

Ví dụ: Chương trình nhập mảng động bằng InputBox

Khi nút Nhập mảng được chọn:

Mã lệnh:

Option Explicit

Dim a() As Integer

Dim n As Integer

Private Sub Cmd_ketthuc_Click()

End

Page 127: 68727097 Giao Trinh Visual Basic

Trang 127/286 Giáo trình Visual Basic

End Sub

Private Sub Cmd_nhap_Click()

Dim i As Integer

n = Val(InputBox("nhap mang bao nhieu phan tu"))

ReDim a(n)

Txt_xuat.Visible = False

For i = 1 To n

a(i) = Val(InputBox("a(" & Str(i) & ")= ", "Nhap mang"))

Next

End Sub

Private Sub Cmd_xuat_Click()

Dim i As Integer

Txt_xuat.Visible = True

Txt_xuat.Text = ""

For i = 1 To n

Txt_xuat.Text = Txt_xuat.Text & Str(a(i)) & " "

Next

End Sub

Private Sub Form_Load()

Txt_xuat.Visible = False

End Sub

Page 128: 68727097 Giao Trinh Visual Basic

Trang 128/286 Giáo trình Visual Basic

4. Các Thuật Toán Cơ Bản

Cộng dồn

Lặp lần lượt một thao tác, trong đó các giá trị được dồn vào một biến. Trước khi thực hiện cộng dồn, gán giá trị biến dồn bằng giá trị khởi tạo. (Nếu tính tổng thì khởi tạo thường là bằng 0, nếu tính tích thì khởi tạo thường là bằng 1. Giá trị khởi tạo phụ thuộc vào thuật toán).

Ví dụ: thuật toán cộng dồn cho chuỗi các số

Tính tổng Sum = 1 + 2+ 3 +…n

Ví dụ: sử dụng thuật toán cộng dồn cho kiểu string

Chúng ta xuất một mảng các số nguyên vào textbox

Page 129: 68727097 Giao Trinh Visual Basic

Trang 129/286 Giáo trình Visual Basic

Ví dụ: cộng dồn cho mảng một chiều

Tương tự cho việc tính cộng dồn trên chuỗi các số

Cộng dồn theo điều kiện

Lặp lần lượt một thao tác, trong đó các giá trị được dồn vào một biến nếu thỏa điều kiện nào đó. Trước khi thực hiện cộng dồn, gán giá trị biến dồn bằng giá trị khởi tạo. Chương trình sẽ có lệnh rẽ nhánh (If…then, Select case…) lồng trong vòng lặp.

Ví dụ: Cộng dồn trên mảng 1 chiều

Page 130: 68727097 Giao Trinh Visual Basic

Trang 130/286 Giáo trình Visual Basic

Ví dụ: Cộng dồn trên mảng 2 chiều: cần 2 vòng lặp

Tìm kiếm tuần tự

Thực hiện lặp lại việc duyệt lần lượt từng phần tử trong danh sách. Nếu thỏa mãn điều kiện thì lưu lại vị trí cần tìm (và có thực hiệp lặp tiếp hay không tùy thuật toán. Có thể thoát sớm vòng lặp ngay sau khi tìm thấy).

Ví dụ: tìm kiếm phần tử trong mảng

Page 131: 68727097 Giao Trinh Visual Basic

Trang 131/286 Giáo trình Visual Basic

Tìm phần tử nhỏ nhất – lớn nhất

Ví dụ: tìm giá trị lớn nhất trong mảng

Page 132: 68727097 Giao Trinh Visual Basic

Trang 132/286 Giáo trình Visual Basic

Sắp xếp mảng

Sắp xếp (Sort) một danh sách là việc thường xuyên của một người viết chương trình. Có nhiều kỹ thuật sắp xếp khác nhau. Tuy nhiên, trong nội dung môn học này yêu cầu bạn chỉ cần nắm rõ một thuật toán dùng cho việt sắp xếp trên mảng. Việc sắp xếp tăng hay giảm do cách so sánh giữa các phần tử trong mảng.

Ví dụ: sắp xếp mảng 1 chiều tăng dần

Cho mảng một chiều Arr với khởi tạo như sau

Thực hiện sắp xếp mảng Arr tăng dần. Lưu ý các giá trị đầu và cuối của i và j.

Page 133: 68727097 Giao Trinh Visual Basic

Trang 133/286 Giáo trình Visual Basic

5. Sử Dụng Một Số Hàm Xử Lý Chuỗi

Khai báo chuỗi:

Dim Biến as string thì đây là biến chuỗi có chiều dài thay đổi và nó có thể chứa khoảng hơn 2 tỉ ký tự.

Hàm Len, Left, Right, Mid:

Cú pháp:

Len(S): Cho biết chiều dài thực của chuỗi S

Left(S,N): Lấy N ký tự bên trái của chuỗi StringExpression

Right(S,N): Lấy N ký tự bên phải của S

Mid(S,M,N): Lấy N ký tự của S bắt đầu từ vị trí thứ M

Ví dụ: Viết chương trình xử lý chuỗi như sau

Khi chương trình bắt đầu thực hiên:

Page 134: 68727097 Giao Trinh Visual Basic

Trang 134/286 Giáo trình Visual Basic

Khi nút Nhập dữ liệu vào danh sách được chọn:

Khi dữ liệu được nhập vào textbox và Enter (tương ứng nút cập nhật được chọn):

Khi nút chọn dữ liệu theo mẫu được chọn:

Page 135: 68727097 Giao Trinh Visual Basic

Trang 135/286 Giáo trình Visual Basic

Mã lệnh:

Option Explicit

Private Sub Cmd_boChon_Click()

Lbl_nhap.Caption = "Mẫu dữ liệu: "

txt_nhap.Text = ""

cmd_capnhat.Caption = "&Bỏ chọn"

txt_nhap.Visible = True

Lbl_nhap.Visible = True

txt_nhap.SetFocus

End Sub

Private Sub Cmd_cMau_Click()

Lbl_nhap.Caption = "Mẫu dữ liệu: "

txt_nhap.Text = ""

Page 136: 68727097 Giao Trinh Visual Basic

Trang 136/286 Giáo trình Visual Basic

cmd_capnhat.Caption = "&Chọn"

txt_nhap.Visible = True

Lbl_nhap.Visible = True

txt_nhap.SetFocus

End Sub

Private Sub Cmd_cTat_Click()

For i = 0 To Lst_dulieu.ListCount - 1

Lst_dulieu.Selected(i) = True

Next

End Sub

Private Sub Cmd_ketthuc_Click()

End

End Sub

Private Sub Cmd_nhap_Click()

Lbl_nhap.Visible = True

Lbl_nhap.Caption = "Nhập dữ liệu: "

cmd_capnhat.Visible = True

cmd_capnhat.Caption = "&Cập nhật"

txt_nhap.Visible = True

txt_nhap.Text = ""

txt_nhap.SetFocus

End Sub

Private Sub Cmd_capnhat_Click()

Page 137: 68727097 Giao Trinh Visual Basic

Trang 137/286 Giáo trình Visual Basic

Dim i As Integer

If cmd_capnhat.Caption = "&Cập nhật" Then

Lst_dulieu.AddItem txt_nhap.Text

txt_nhap.Text = ""

txt_nhap.SetFocus

End If

If cmd_capnhat.Caption = "&Chọn" Then

For i = 0 To Lst_dulieu.ListCount - 1

If UCase(Left(Lst_dulieu.List(i), Len(txt_nhap.Text))) = UCase(txt_nhap.Text) Then

Lst_dulieu.Selected(i) = True

End If

Next

End If

If cmd_capnhat.Caption = "&Bỏ chọn" Then

For i = 0 To Lst_dulieu.ListCount - 1

If UCase(Left(Lst_dulieu.List(i), Len(txt_nhap.Text))) = UCase(txt_nhap.Text) Then

Lst_dulieu.Selected(i) = False

End If

Next

End If

End Sub

Private Sub Form_Load()

Page 138: 68727097 Giao Trinh Visual Basic

Trang 138/286 Giáo trình Visual Basic

Lbl_nhap.Visible = False

txt_nhap.Visible = False

cmd_capnhat.Visible = False

Lst_dulieu.Clear

Cmd_nhap.TabIndex = 0

End Sub

6. Gỡ Rối Chương Trình

Khi ta chạy thử chương trình bằng cách bấm F5 , nếu chương trình có lỗi thì chương trình sẽ dừng lại và hiện ra hộp thoại để cho biết chương trình đã bị lỗi gì:

Lúc này nếu ta bấm End thì chương trình kết thúc, Nếu bấm Debug thì màn hình sẽ quay về cửa sổ lệnh và dòng lệnh phát sinh lỗi sẽ có màu khác. Đôi khi dòng này không có lỗi, nhưng do lỗi ỡ câu lệnh nào đó phía trên làm cho câu lệnh này không thực hiện được. Khi đã tạm dừng (Debug) thì cửa sổ Immediate hiện ra. Cửa sổ này cho phép ta thực hiện từng câu lệnh để phát hiện ra lỗi. Muốn xem giá trị

Page 139: 68727097 Giao Trinh Visual Basic

Trang 139/286 Giáo trình Visual Basic

của một biến hoặc một thuộc tính thì ta gỏ tên biến hoặc thuộc tính cần xem sau dấu ?. Dựa vào các giá trị này ta có thể lần ra được lỗi.

7. In Ấn

Khi cần in nội dụng của một chương trình ta chọn lệnh:

File – Print thì hộp thoại in xuất hiện:

Ý nhgĩa các mục trong hộp thoại:

Range: Selection:In phần đang chọn

Current module: In mã lệnh của module đang chọn

Project Curent: In nội dung của Project hiện hành

Print What:

In mã lệnh của chương trình

Form as text: In thông tin về Form và các đối tượng trên Form.

Print Quality: Chất lượng in

Print to file: In kết quả ra một tập tin

Page 140: 68727097 Giao Trinh Visual Basic

Trang 140/286 Giáo trình Visual Basic

8. Mảng Đối Tượng

Khi đặt một control mới lên Form nếu ta đặt tên cho nó trùng với một đối tượng đã có, hoặc khi ta tạo một đối tượng mới bằng cách sao chép từ một đối tượng đã có thì VB sẽ hỏi chúng ta có muốn tạo các đối tượng này thành một mảng hay không?

Nếu chúng ta chọn Yes thì các đối tượng này sẽ có cùng tên và khi đó chúng sẽ được phân biệt thông qua tên và chỉ số (index).

Ví dụ: nếu chúng ta có một option button tên opt sau đó ta sao chép thành mảng 3 option button nữa thì các nút sẽ được phân biệt như sau: opt(0), opt(1), opt(2), opt(3).

Để phân biệt một đối tượng có họat động ở chế độ mảng đối tượng hay không, chúng ta xem xét thuộc tính Index của nó. Nếu Index là rỗng, thì đối tượng đó là dạng mảng.

Page 141: 68727097 Giao Trinh Visual Basic

Trang 141/286 Giáo trình Visual Basic

Khi muốn tạo một mảng các đối tượng ta cũng có thể làm bằng cách tạo ra các đối tượng này sau đó đặt tên của chúng giống nhau

Lưu ý: Trong các thủ tục sự kiện của một mảng đối tượng luôn có một tham số index để cho biết sự kiện đã xảy ra trên thành viên thứ mấy của mảng. Căn cứ trên giá trị Index này, chúng ta biết được đối tượng nào trong mảng control kích họat sự kiện đó.

Ví dụ: Viết chương trình đổi màu cho control shape Shp từ mảng các option button

Ở đây chúng ta giả sử các Option button đã được đặt vào mảng đối tượng có tên là Opt2 có chỉ số là Opt(0) … Opt(3). Khi đó, cả 3 button này đều có chung hàm sự kiện là Private Sub Opt2_Click(Index As Integer)

Private Sub Opt2_Click(Index As Integer)

Select Case Index

Case 0:

Page 142: 68727097 Giao Trinh Visual Basic

Trang 142/286 Giáo trình Visual Basic

Shp1.FillColor = QBColor(12)

Case 1:

Shp1.FillColor = QBColor(1)

Case 2:

Shp1.FillColor = QBColor(5)

Case 3:

Shp1.FillColor = QBColor(14)

End Select

End Sub

Phần lệnh chọn lọai hình (shape) của shape Shp sinh viên tự thực hiện bằng mảng.

9. Đối Tượng Timer

Là bộ đếm thời gian.

Sau một khỏang thời gian nhất định do người lập trình chỉ định, timer sẽ tự động thực thi hàm sự kiện Timer_Timer. Sau một khoảng thời gian nhất định (do người lập trình cài đặt tại thuộc tính Interval) nó sẽ phát ra một sự kiện gọi là sự kiện thời gian - Timer_Timer, và người lập trình sẽ viết lệnh để thực hiện các xử lý mỗi khi sự kiện này xảy ra.

Khi ta đặt đối tượng này lên Form nó sẽ không hiện lên màn hình.

Các thuộc tính của timer:

Enabled: Cho phép hoặc không cho phép Timer phát sự kiện thời gian

Page 143: 68727097 Giao Trinh Visual Basic

Trang 143/286 Giáo trình Visual Basic

Interval: thời gian nhảy của timer. Đơn vị là Milisecond (1/1000 giây)

Chú ý: Để timer họat động thì:

Thuộc tính Enabled=True

Thuộc tính Interval>0

Ví dụ: Viết chương trình cho 1 lablel tự động di chuyển từ trái sang phải của Form

Sub Timer1_Timer()

Lbl1.Left=Lbl1.Left + 50

End Sub

Ví dụ: Viết chương trình với cột đèn giao thông tự động chuyển đèn theo thứ tự Xanh – Vàng - Đỏ

Option Explicit

Private Sub Form_DblClick()

Timer1.Enabled = False

End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Shift = 0 Then

Image1.Move X, Y

Else

Timer1.Enabled = True

End If

Page 144: 68727097 Giao Trinh Visual Basic

Trang 144/286 Giáo trình Visual Basic

End Sub

Private Sub Timer1_Timer()

Static count As Integer

DoEvents

If count = 0 Then

Image1.Picture = LoadPicture("c:\program files\microsoft visual _ studio\common\graphics\icons\traffic\trffc10a.ico")

count = count + 1

ElseIf count = 1 Then

Image1.Picture = LoadPicture("…\trffc10b.ico")

count = count + 1

Else

Image1.Picture = LoadPicture("…\trffc10c.ico")

count = 0

End If

End Sub

Page 145: 68727097 Giao Trinh Visual Basic

Trang 145/286 Giáo trình Visual Basic

10. Bài tập

1. Chương trình tìm ước số của một số nhập vào

Khi chương trình bắt đầu thực hiện thì textbox nhập số được Setfocus (Gợi ý: Dùng sự kiện FormLoad và thực hiện lệnh TextBox_name.TabIndex=0. Lưu ý trong sự kiện này không thể sử dụng Phương thức SetFocus)

Sau khi nhập số nếu ấn Enter hoặc Click vào nút thực hiện thì hiện kết quả lên TextBox kết quả, và TextBox nhập vẫn được Focus

Nếu ấn Esc hoặc click vào nut1 kết thúc thì dừng chương trình

Page 146: 68727097 Giao Trinh Visual Basic

Trang 146/286 Giáo trình Visual Basic

2. Viết chương trình làm toán cơ bản theo yêu cầu sau:

Lưu ý: Xây dựng các hàm tính 1+2+..+N, Tính 1*2+2*3+..+N*(N+1)

3. Viết chương trình sử dụng mảng với các chức năng được trình bày trên Form như sau:

Việc nhập giá trị cho các phần tử của mảng thực hiện bởi inputbox

Làm lại bài trên với mảng động và giá trị của mảng được tạo ngẫu nhiên.

Page 147: 68727097 Giao Trinh Visual Basic

Trang 147/286 Giáo trình Visual Basic

4. Viết chương trình có giao diện và thực hiện các yêu cầu sau:

Giao diện:

Page 148: 68727097 Giao Trinh Visual Basic

Trang 148/286 Giáo trình Visual Basic

Khi Form được load lên màn hình thì chỉ có nút Nhập dữ liệu, nút Kết thúc là sử dụng được, và nút Nhập dữ liệu được Focus.

Gợi ý: Sử dụng sự kiện Formload, cho giá trị Enabled của các đối tượng muốn mờ bằng false, Gán thuộc tính Tabindex của nút nhập dữ liệu =0

Khi nút Nhập dữ liệu được ấn thì các nút lệnh được sáng lên, xóa nội dung của Textbox nhậo liệu và Setfocus cho textbox này (sử dụng phương thức setfocus). Ví dụ hình bên dưới là khi nút Nhập dữ liệu được ấn. (hình 1)

Khi một trong các nút (ngoại trừ nút Nhập dữ liệu và nút Kết thúc) được chọn thì kết quả sẽ hiện lên textbox và các nút lệnh sẽ bị mờ ngay cả nút vừa ấn. Ví dụ hình bên dưới là kết quả khi nút inchữ hoa được ấn. (hình 2)

(Hình 1)

Page 149: 68727097 Giao Trinh Visual Basic

Trang 149/286 Giáo trình Visual Basic

(Hình 2)

Trong các thủ tục muốn lấy một ký tự ra để xử lý ta dùng hàm mid với số ký tự cần lấy là 1.

5. Dựa vào chương trình các ví dụ trên chuỗi (đã học trên lớp) hãy tạo một chương trình được trình bày và thực hiện thao những yêu cầu sau:

Page 150: 68727097 Giao Trinh Visual Basic

Trang 150/286 Giáo trình Visual Basic

ListBox chứa dữ liệu có thuộc tính Sorted=True

Khi khởi động thì thuộc tính Enabled của nút phục hồi = false

Chúc năng nhập dữ liệu vào danh sách giống như ví dụ trên lớp

Chức năng chọn dữ liệu theo mẫu có thêm phần: Nếu nội dung của mẫu chọn =”*” thì chọn tất cả các mục đang có trong ListBox dữ liệu

Chức năng bỏ chọn dữ liệu theo mẫu có thêm phần: Nếu nội dung của mẫu chọn =”*” thì bỏ chọn tất cả các mục đang có trong ListBox dữ liệu

Chức năng xóa các mục đang chọn sẽ xóa các mục đang chọn trong ListBox dữ liệu. (xem lại thuật giải xóa các mục trong listbox ở các ví dụ trước). Tuy nhiên để có thể

Page 151: 68727097 Giao Trinh Visual Basic

Trang 151/286 Giáo trình Visual Basic

phục hồi các mục đã xóa thì trước khi xóa một mục ta phải lưu nội dung của mục này vào một mảng.

Sau khi xóa thì sẽ bật thuộc tính Enabled của nút phục hồi =True

Gợi ý:

Khai báo một mảng động kiểu chuỗi (dài khoảng 25 ký tự) và một biến SPT kiểu Integer. Các biền này là những biến toàn cục.

Trước khi xóa một mục thì đưa nội dung của đó vào một phần tử của mảng này rồi tăng biến SPT lên 1.

Chức năng phục hồi sẽ sử dụng phương thức AddItem đưa các mục đang có trong mảng toàn cục vào LixtBox dữ liệu. Sau khi đã đưa hết các phần tử của mảng vào ListBox thì Redim mảng toàn cục về 0 và cho giá trị của biến SPT về 0, đồng thời cho thuộc tính Enabled của nút phục hồi = false

6. Viết chương trình nhập N số tự nhiên đầu tiên: từ 1…N vào ListBox.

Khi người sử dụng chọn 1 số, thì các ước số tự nhiên của số được chọn được hiển thị trong ListBox thứ 2.

Page 152: 68727097 Giao Trinh Visual Basic

Trang 152/286 Giáo trình Visual Basic

7. Viết chương trình nhập N số tự nhiên đầu tiên: từ 1…N vào ListBox.

Khi người sử dụng chọn 1 số trong Listbox thứ nhất, thì số được chọn được phân tích thành thừa số nguyên tố và được hiển thị trong ListBox thứ 2

Page 153: 68727097 Giao Trinh Visual Basic

Trang 153/286 Giáo trình Visual Basic

8. Viết hàm tính n! ( n!=1.2.3…..n )

Sử dụng hàm trên để tính chuỗi: S = 1 + 1/2! + 1/3! + 1/4! + …+1/n!

9. Viết hàm kiểm tra 1 số có phải là số nguyên tố hay không? (Function KiemTraSNT(n): tra về 0 nếu n không phải là số nguyên tố, 1 nếu n là số nguyên tố.)

10.Sử dụng hàm số trên để tìm M số nguyên tố đầu tiên(M>0: số nhập vào)

11. Viết hàm tính tổng các ước số của 1 số nguyên dương n nhập vào (TongUoc(6)=6)

12. Viết hàm giải phương trình bậc 1. (GiaiPTB1(a,b,x1) as Integer). Hàm này trả về 0 nếu VN, 1 nếu 1 nghiệm, và 2 nếu VSN.

13. Bút chì tự động đổi màu (nhấp nháy) từ xanh -> đỏ …. Tốc độ nháy do người sử dụng chỉnh trên thanh cuộn,

(Các icon bút chì trong thư mục: Graphics\icons\writings)

Page 154: 68727097 Giao Trinh Visual Basic

Trang 154/286 Giáo trình Visual Basic

14. Viết chương trình làm mặt trăng xoay tròn. Tốc độ nháy do người sử dụng chỉnh trên thanh cuộn,

(Các icon trong thư mục: Graphics\icons\elements)

15. Viết chương trình: quả bóng dội lên xuống không ngừng trong một Form.

16.Viết hàm tìm phần tử là số nguyên tố trong tất cả các phần tử của mảng.

Page 155: 68727097 Giao Trinh Visual Basic

Trang 155/286 Giáo trình Visual Basic

17. Viết chương trình nhập vào một dãy n số thực a[0], a[1],…, a[n-1], sắp xếp dãy số theo thứ tự từ lớn đến nhỏ. In dãy số sau khi sắp xếp.

18. Viết một hàm đảo ngược thứ tự các phần tử của một mảng số thực:

19. Tìm phần tử lớn nhất/nhỏ nhất trong mảng.

20. Viết chương trình tạo ra ma trận vuông n x n, với n đc nhập vào (3<=n<=10) và giá trị các phần tử trong mảng là ngẫu nhiên(từ 1 đến 100). In mảng số vừa có ra màn hình.

Sau đó:

in ra phần tử lớn nhất

phần tử bé nhất

tổng các phần tử của ma trận

in ra các phần tử trên đường chéo chính của ma trận

in ra các phần tử chẵn

các phần tử lẻ có trong ma trận

in ra các số có xuất hiện trong dãy đó

21. Viết chương trình nhập vào một mảng, hãy xuất ra màn hình:

Phần tử lớn nhất của mảng.

Phần tử nhỏ nhất của mảng.

Tính tổng của các phần tử trong mảng.

22. Viết chương trình nhập vào một mảng số tự nhiên. Hãy xuất ra màn hình:

Dòng 1 : gồm các số lẻ, tổng cộng có bao nhiêu số lẻ.

Page 156: 68727097 Giao Trinh Visual Basic

Trang 156/286 Giáo trình Visual Basic

Dòng 2 : gồm các số chẵn, tổng cộng có bao nhiêu số chẵn.

Dòng 3 : gồm các số nguyên tố.

Dòng 4 : gồm các số không phải là số nguyên tố

23. Viết chương trình tính tổng bình phương của các số âm trong một mảng các số nguyên.

24. Viết chương trình thực hiện việc đảo một mảng một chiều. Ví dụ : 1 2 3 4 5 7 9 10 đảo thành 10 9 7 5 4 3 2 1.

25. Viết chương trình nhập vào mảng, hãy xuất ra màn hình:

Dòng 1: Phần tử âm lớn nhất của mảng.

Dòng 2: Phần tử dương nhỏ nhất của mảng.

Dòng 3: Tổng các phần tử có căn bậc hai nguyên.

Dòng 4: Gồm các số lẻ, tổng cộng có bao nhiêu số lẻ.

Dòng 5: Gồm các số chẵn, tổng cộng có bao nhiêu số chẵn.

Dòng 6: Gồm các số nguyên tố.

Dòng 7: Gồm các số không phải nguyên tố.

26 Viết chương trình nhập vào một số nhỏ hơn 1000. Trình bày dòng chữ cho biết giá trị của số đó.

Page 157: 68727097 Giao Trinh Visual Basic

Trang 157/286 Giáo trình Visual Basic

CHƯƠNG 5: CHƯƠNG TRÌNH NHIỀU FORM

NỘI DUNG:

CHƯƠNG TRÌNH CÓ NHIỀU FORM

FORM MDI –SPLASH FORM

MENU

CÁC HÀM VỀ DỮ LIỆU NGÀY GIỜ

1. Chương Trình Nhiều Form

Thêm Form vào project

Một chương trình có thể chứa nhiều Form. Để thêm một Form vào chương trình ta chọn Project – AddForm. Từ cửa sổ Add Form – chọn biểu tượng Form –> Open

Page 158: 68727097 Giao Trinh Visual Basic

Trang 158/286 Giáo trình Visual Basic

Ta cũng có thể thêm một Form đã có vào Project bằng cách:

Chọn Project - Add File – Chọn tập tin Form có sẵn.

Page 159: 68727097 Giao Trinh Visual Basic

Trang 159/286 Giáo trình Visual Basic

2. Quản lý Project

Khi một Project đã có nhiều Form, module…, để dễ dàng trong việc quản lý chúng ta thường sử dụng cửa sổ Project Explorer

Để hiện cửa sổ này ta chọn: View – Project Explorer (hoặc Ctrl+R)

Trong cửa sổ này chứa các thành phần đang có của Project như Form, Module

Ta có thể cho nội dung của một thành phần nào đó hiện lên màn hình bằng cách nhấp kép trên tên thành phần đó.

Ta cũng có thể Click phải trên một thành phần rồi chọn chọn chức năng cần thiết như: View Object, View Code, Save, Save As, Remove..

Lưu ý: Khi ta remove một thành phần nào đó trong cửa sổ Windows Explorer thì xem như tập tin lưu thành phần này trên dĩa cũng bị xóa.

3. Vấn đề sử dụng biến, thủ tục và đối tượng có trong các Form

Biến – Thủ tục : Biến, Thủ tục khai báo trong một Form nào đó

Page 160: 68727097 Giao Trinh Visual Basic

Trang 160/286 Giáo trình Visual Basic

muốn sử dụng được trong các Form khác thì ta phải khai báo với từ khóa Public

Ví dụ:

Public V as integer

Public Sub1()

....

End sub

Lưu ý:

o Các biến Public phải khai báo trong phần General cùa Form.

Muốn truy xuất đến một biến hoặc gọi một thủ tục Public trong Form khác ta phải thêm tên Form chứa biến và thủ tục phía trước và cách nhau bởi dấu chấm.

Ví dụ:

o Form2.v=100 ‘Gán giá trị 1000 vào biến V được khai báo trong Form2

o Form2.sub1

Truy xuất đến các đối tượng của Form khác: Muốn truy xuất đến các đối tượng và thuộc tính của đối tượng nằm trên một Form khác ta phải đặt thêm tên Form phía trước tên đối tượng và cách nhau bới dấu chấm.

Ví dụ:

Form2.text1.text=”DurianGroup”

Form2.shape.Fillcolor=QBColor(Rnd() * 10)

Page 161: 68727097 Giao Trinh Visual Basic

Trang 161/286 Giáo trình Visual Basic

4. Quy định Form thực hiện trước

Khi một Project có nhiều Form ta phải quy định Form nào thực hiện trước (Fom sẽ hiện lên màn hình đầu tiên khi chương trình thực hiện).

Cách thực hiện:

Chọn menu Project – Project properties

Chọn General

Chọn tên Form chính trong Combo box Star Object

5. Hiện Form lên màn hình

Khi chương trình thực hiện nó chỉ hiện Form chính lên màn hình. Trong quá trình xử lý, nếu muốn một Form khác xuất hiện ta phải gọi phương thức Show của Form đó theo cú pháp : tênForm.show

Page 162: 68727097 Giao Trinh Visual Basic

Trang 162/286 Giáo trình Visual Basic

Một Form được hiển thị lên màn hình theo một trong hai trạng thái:

Modeless: Sau khi Form được show lên màn hình các câu lệnh sau lệnh show sẽ được thực hiện tiếp. Đây là trạng thái mặc nhiên.

Modal: Nếu Form được Show theo trạng thái này thì sau khi Form hiện ra thì chương trình chỉ làm việc với Form này cho đến khi nào Form này đóng lại thì mới thực hiện tiếp các câu lệnh sau show. Thông thường các hộp thoại trong các chương trình úng dụng được Show ở trạng thái Modal. Để hiển thị Form ở trạng thái modal ta thêm số một (1) hoặc hằng số VBmodal sau show

o Vd: Form2.Sow 1

Nạp và hủy Form

Lệnh Load: Lệnh này để load một Form vào bộ nhớ nhưng không hiện Form lên màn hình. Lệnh này thường được sử dụng khi ta cần lấy các giá trị được tạo ra khi Form này được load vào bộ nhớ mà không cần nó hiện lên màn hình.

Lệnh Unload: Khi muốn hủy bỏ một Form ra khỏi bộ nhớ, chúng ta dùng lệnh Unload theo cú pháp Unload <tên Form>

o Ví dụ: unload Form2

Trong trường hợp chỉ muốn làm cho Form không hiển thị trên màn hình nhưng vẫn tồn tại trong bộ nhớ ta có thể dùng lệnh hide

o Ví dụ: Form2.Hide

Page 163: 68727097 Giao Trinh Visual Basic

Trang 163/286 Giáo trình Visual Basic

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

Ví dụ: Trong Form2 thay vì ghi câu lệnh unload Form2 ta có thể ghi unload me

Ví dụ: Viết chương trình sư dụng 2 Form. Form đầu sẽ dùng để điều khiển Form thứ 2 như các mô tả dưới đây:

Trong Form thứ 2 có 1 biến toàn cục V và 1 hàm Sub1

Form thứ 1 sẽ gọi và hiển thị Form 2 dạng Modelesss

Form thứ 1 sẽ thay đổi biến V của Form 2

Form thứ 1 sẽ gọi hàm Sub1 của Form 2

Form thứ 1 đổi màu nền Form 2

Code của Form1

Option Explicit

Private Sub cmd_show_Click()

Form2.Show 'vbModal

Cmd1.SetFocus

End Sub

Private Sub Cmd1_Click()

Form2.V = Form2.V + 1000

End Sub

Page 164: 68727097 Giao Trinh Visual Basic

Trang 164/286 Giáo trình Visual Basic

Private Sub Cmd2_Click()

Form2.Sub1

End Sub

Private Sub Cmd3_Click()

Form2.Shape1.FillColor = QBColor(Rnd() * 10)

End Sub

Private Sub Cmd4_Click()

Unload Form2

End

End Sub

Private Sub Form_Click()

Page 165: 68727097 Giao Trinh Visual Basic

Trang 165/286 Giáo trình Visual Basic

cmd_show.Caption = Form2.V + 2000

End Sub

Private Sub Form_Load()

Load Form2

End Sub

Code của Form2

Option Explicit

Public V As Integer

Private Sub Cmd_unload_Click()

Unload Form2 'unload me

'Hide

End Sub

Private Sub Form_Load()

V = 1000

txt1.Text = V

End Sub

Public Sub Sub1()

txt1.Text = V

End Sub

Page 166: 68727097 Giao Trinh Visual Basic

Trang 166/286 Giáo trình Visual Basic

3. FORM MDI (Multi Document Interface)

1. Đặc điểm của một MDI Form:

Là một cửa sổ mà bên trong có thể chứa nhiều Form con khác (các Form dạng SDI (Single document interface).

Trong một Project chỉ có thể có một Form MDI duy nhất

Các Form con của Form MDI luôn nằm bên trong Form MDI và kích thước luôn nhỏ hơn hoặc bằng Form MDI

Khi một Form con của Form MDI được cực tiểu thì icon của nó nằm trên Form MDI chứ không nằm trên Desktop

Khi di chuyển Form MDI thì các Form con của nó sẽ di chuyển theo

2. Đưa Form MDI vào project:

Chọn Project – Add MDI Form

Page 167: 68727097 Giao Trinh Visual Basic

Trang 167/286 Giáo trình Visual Basic

3. Các thuộc tính và phương thức cơ bản của Form MDI:

Thuộc tính Active Form: Cho phép truy xuất đến Form đang trong trạng thái hoạt động

Phương thức Arrange: Sắp xếp các Form bên trong Form MDI

o Cú pháp Arrange n

n: là một trong các giá trị từ 0 --> 3 cho biết cách sắp xếp.

4. Quy định một Form là Form con của Form MDI:

Để quy định một Form là Form con của Form MDI thì ta đặt thuộc tính MDIchild của Form này là true

Page 168: 68727097 Giao Trinh Visual Basic

Trang 168/286 Giáo trình Visual Basic

5. Tạo một Form mới trong chương trình:

Khi chương trình đang chạy, nếu muốn tạo thêm một hay nhiều Form mới giống như một mẫu Form đã thiết kế ta thực hiện các dòng lệnh sau:

Dim <Tên biến> As New <Tên Form mẫu>

Sau đó nếu muốn nạp Form mới vào bộ nhớ dùng lệnh:

Load < Tên biến>

Muốn hiện Form lên màn hình

<tên biến>.Show

Ví dụ:

Dim frm as new Form2

Load Form2

Frm.Show

4. Splash Screen

Là một Form thường xuất hiện trên màn hình trong thời gian vài giây khi chương trình vừa khởi động. Thông tin trên Form này tóm tắt một vài thông tin về chương trình, ngoài ra Form này còn có mục đích lấp bớt khoảng trống trong khi các phần của chương trình đang nạp vào bộ nhớ (Form này sẽ được nạp ở chế độ Modeless)

Mục đích của Splash Screen

Giới thiệu thông tin về phần mềm, tác giả phần mềm

Làm cho người sử dụng bớt có cảm giác chương trình khởi động chậm hoặc không chạy

Page 169: 68727097 Giao Trinh Visual Basic

Trang 169/286 Giáo trình Visual Basic

Một splash screen có các đặc tính:

Hiện lên màn hình trong một khoảng thời gian nào đó rồi tự đóng lại nhường chổ Form chính của chương trình.

Trong thời gian này nếu có một phím được ấn, hoặc click chuột thì splash screen cũng được đóng lại. (Tùy chọn)

Tạo Spalsh Screen

Một Project có splash screen thì thường được khởi đầu bằng thủ tục sub main

(khai báo trong module)

Để chèn một module vào chưong trình ta thực hiện: Project – add module

Ta có thể tự tạo ra Form này theo ý riêng hoặc có thể sử dụng chức năng :

o Project – Add Form – Splash Screen

o Sau đó thay đổi một số mục cho vừa ý

Page 170: 68727097 Giao Trinh Visual Basic

Trang 170/286 Giáo trình Visual Basic

Để ấn định thời gian xuất hiện của Form trên màn hình ta có thể sử dụng đối tượng Timer

Ví dụ: Chương trình sau gồm một splash screen, một MDI Form, một Form mẫu có tên Form1, một module1 trong đó có Sub main()

Option Explicit

Sub Form_KeyPress(KeyAscii As Integer)

Unload Me

End Sub

Sub Form_Unload(Cancel As Integer)

MDIForm1.Show

End Sub

Private Sub Frame1_Click()

Unload Me

End Sub

Sub Timer1_Timer()

Unload Me

End Sub

Option Explicit

Private Sub MDIForm_DblClick()

Page 171: 68727097 Giao Trinh Visual Basic

Trang 171/286 Giáo trình Visual Basic

Me.Arrange 2

End Sub

Private Sub MDIForm_click()

Static n As Integer

Dim newForm As New Form1

n = n + 1

newForm.Caption = "Form thu" & Str(n)

newForm.Show

End Sub

Module1.bas

Option Explicit

Sub main()

frmSplash.Show

Load MDIForm1

End Sub

5. Tạo Menu Cho Một Form

Menu là đối tượng thường được xử dụng do tính phân cấp và sự gọn gàng của nó.

Để tạo menu cho một Form ta thực hiện các sau:

Chọn Tools – Menu Editor (Hoặc bấm Ctrl_E)

Page 172: 68727097 Giao Trinh Visual Basic

Trang 172/286 Giáo trình Visual Basic

Nhập nội dung của menu vào ô caption nếu muốn tạo phím tắt thì thêm & phía trước ký tự muốn tạo phím tắt. Nếu muốn tạo một vạch ngang trên menu thì caption - dấu trừ

Đặt tên cho menu vào ô Name. Nếu có nhiều mục menu trùng nhau thì ta phải quy định thêm index của mỗi mục menu

Nhấp vào nút next rồi lập lại các bước trên cho một mục menu mới.

Nếu muốn một mục menu là con của một menu khác thì chọn trước khi nhập nội dung của menu

Dùng các phím mũi tên để sắp xếp lại vị trí các menu

Sau khi đã định nghĩa xong menu thì click vào nút OK

Page 173: 68727097 Giao Trinh Visual Basic

Trang 173/286 Giáo trình Visual Basic

Viết lệnh cho menu:

Trên màn hình thiết kế click chuột vào mục muốn viết lệnh thì cửa sổ code hiện ra để ta viết lệnh

Các thuộc tính của menu

Thuộc tính Caption: có thể thay đổi lúc Run Time hoặc Design Time

Thuộc tính Enabled:

o Khi muốn một Menu trở nên mất tác dụng (bị mờ, không chọn được), sử dụng thuộc tính Enabled và chỉ định giá trị FALSE:

MnuFileExit.Enabled = False

Thuộc tính Visible:

o Khi muốn ẩn một Menu, sử dụng thuộc tính Visible và chỉ định giá trị FALSE. Khi menu mẹ bị ẩn đi, các menu con cũng bị ẩn theo:

o MnuFile.Visible = False

Thuộc tính Checked:

o Một menu có thể chứa 1 Check mark. Check mark thường được sử dụng như 1 Option chọn lựa có 2 trạng thái: On hay Off. Khi muốn hiện một Check mark, sử dụng thuộc tính Checked và chỉ định giá trị TRUE.

Ví dụ: Viết chương trình gồm có một menu Format – Bold dùng để định dạng một textbox là in đậm hay in thường. Khi người sử dụng click vào menu Bold, thì tùy theo trạng thái đang chọn của menu Bold mà textbox và menu sẽ chuyển sang trạng thái còn lại.

Page 174: 68727097 Giao Trinh Visual Basic

Trang 174/286 Giáo trình Visual Basic

6. End Sub

Context menu

Menu xuất hiện khi người sử dụng bấ, right- click

Sử dụng Lệnh Popupmenu:

o Lệnh này cho xuất hiện menu ở tại vị trí hiện hành của mouse

Cú pháp Popupmenu <tên menu>

Ví dụ: Chương trình sau có 3 Form: splash Form, MDI Form, Form1.

Page 175: 68727097 Giao Trinh Visual Basic

Trang 175/286 Giáo trình Visual Basic

Trong đó Form1 là Form mẫu. Trên MDIForm có một menu cho phép tạo ra Form mới, đóng Form và kết thúc chương trình

Nội dung lệnh của Form splash , module1.bas cũng giống như bài trước

Option Explicit

Dim n As Integer

Private Sub MDIForm_DblClick()

Me.Arrange 2

End Sub

Private Sub MDIForm_click()

Dim newForm As New Form1

n = n + 1

newForm.Caption = "Form thu" & Str(n)

newForm.Show

Page 176: 68727097 Giao Trinh Visual Basic

Trang 176/286 Giáo trình Visual Basic

End Sub

Private Sub MDIForm_Load()

n = 0

End Sub

Private Sub MDIForm_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 Then PopupMenu mnu_qlForm

End Sub

Private Sub mnu_end_Click()

End

End Sub

Private Sub mnu_tao_Click()

Dim newForm As New Form1

n = n + 1

newForm.Caption = "Form thu" & Str(n)

newForm.Show

End Sub

Private Sub mnu_xoa_Click()

If n > 0 Then

Unload MDIForm1.ActiveForm

n = n - 1

End If

End Sub

Page 177: 68727097 Giao Trinh Visual Basic

Trang 177/286 Giáo trình Visual Basic

7. Các Hàm Về Dữ Liệu Ngày Giờ

Hàm Date Trả về ngày hệ thống (dạng thể hiện phụ thuộc vào Regional setting)

Hàm Now trả về ngày giờ hệ thống (12/07/97 10:41:10 PM)

Cdate(Variable or Property or Constant ) Chuyển một giá trị (chuỗi hoặc số) sang dạng date.

o Ví dụ: CDate("12/31/1899")=#12/31/1899#

o cdate(1)=#12/31/1899#

Page 178: 68727097 Giao Trinh Visual Basic

Trang 178/286 Giáo trình Visual Basic

8. Bài tập

1. Thêm vào các chương trình đã làm Form flash cho biết mục đích của chương trình, tên người thực hiện, ngày thực hiện. Form này tự động thoát khỏi màn hình sau một thới gian nhất định hoặc khi có một phím/chuột được ấn.

2. Tạo menu và chương trình soạn thảo văn bản với giao diện và thống menu như sau:

Page 179: 68727097 Giao Trinh Visual Basic

Trang 179/286 Giáo trình Visual Basic

3. Dựa vào chương trình Timer đã học trên lớp viết chương trình có giao diện và yêu cầu như sau:

Với hệ thống menu như sau

Các mục trong Color ( White, Blue, Red, Magenta, Yelow) được tạo thành một mảng có chỉ số từ 0 đến 4.

Page 180: 68727097 Giao Trinh Visual Basic

Trang 180/286 Giáo trình Visual Basic

Các mục trong Size of Ball (Small, Medium, Large) cũng tạo thành một mảng có chỉ số từ 0 đến 2.

Sử dụng Updown control

Khi Form được load vào bộ nhớ thì:

Gán thuộc tính Backcolor cho các option button theo màu như Form ở trên (màu : 15, 2, 12, 5,14).

Gán thuộc tính Value cùa Option button thứ nhất trong Option group = true (chọn màu trắng)

Cán thuộc tính check của menu white =true

Gán thuộc tính Fillcolor của quả banh = thuộc tính Backcolor của Option button thứ nhất (màu trắng)

Cho thuộc tính ListIndex của combobox =0

Gán thuộc tính check của menu Small=true

Tốc độ của quả banh có thể thay đổi bởi:

Updown

Nhập trong Textbox tốc độ

Nhập bởi inputbox khi chọn speed trên menu option.

Lưu ý:

Tốc độ của quả banh khi thay đổi phải là một tốc độ hợp lệ (10<=tốcđộ<=1000). Mỗi khi tốc độ bị thay đổi thì việc thay đối này phải thể hiện trên textbox và thuộc tính value của updown.

Màu của quả banh được chọn trên Option button group hoặc chọn trên menu Option/color/..

Page 181: 68727097 Giao Trinh Visual Basic

Trang 181/286 Giáo trình Visual Basic

Mỗi khi người sử dụng chọn màu thì option button màu tương ứng phải được chọn và menu màu tương ứng phải có dấu check (các menu còn lại phải không có dấu check)

Tương tự như màu của quả banh, kích thước quả banh cũng được chọn bởi Combo box hoặc menu và combo box, menu phải thể hiện được kích thước hiện tại của quả banh.

Page 182: 68727097 Giao Trinh Visual Basic

Trang 182/286 Giáo trình Visual Basic

Page 183: 68727097 Giao Trinh Visual Basic

Trang 183/286 Giáo trình Visual Basic

CHƯƠNG 6: SỰ KIỆN PHÍM

NỘI DUNG:

CÁC SỰ KIỆN PHÍM

SỰ KIỆN MOUSE

BẪY LỖI

COMMON DIALOG

1. Các Sự Kiện Phím

Các sự kiện này chỉ xảy ra trên đối tượng đang focus.

Khi một phím được ấn luôn xảy ra 3 sự kiện theo thứ tự: KeyDown, Keypress, Keyup.

Có thể có nhiều sự kiện Keydown xảy ra nhưng chỉ có một sự kiện Keyup khi người sử dụng ấn và giữ phím một lúc rồi mới buông phím.

Các thủ tục xử lý cho các sự kiện này có dạng như sau:

Private Sub <tên đối tượng>_KeyDown(KeyCode As Integer, Shift As Integer)

End Sub

Private Sub <tên đối tượng>_KeyUp(KeyCode As Integer, Shift As Integer)

End Sub

Page 184: 68727097 Giao Trinh Visual Basic

Trang 184/286 Giáo trình Visual Basic

Keycode: Cho biết code của phím được ấn. Lưu ý mỗi phím trên bàn phím đều có một Keycode cố định không phụ thuộc vào trạng thái của các phím chức năng như Shift, Control, Capslock.

Shift: Cho biết trạng thái của các phím Shift, Control, Alt có được ấn hay không.

o Shift=0: Không có phím nào trong 3 phím kể trên được ấn

o Shift=1: Phím Shift được ấn

o Shift=2: Phím Ctrl được ấn

o Shift=4: Phím Alt được ấn

Private Sub <tên đối tượng>_KeyPress(KeyAscii As Integer)

End Sub

KeyAscii: Cho biết mã Ascii của phím được ấn

Sự kiện keypress thường được sử dụng khi cần nhận dạng các phím ký tự vì tham số KeyAscii cho biết chính xác đó là ký tự nào được ấn (phân biệt chữ hoa chữ thường, phân biệt trong trường hợp phím Shift được ấn kèm với các phím có hai ký hiệu.

Trong khi xử lý sự kiện này nếu ta gán lại giá trị mới cho KeyAscii cũng có nghĩa là sửa phím được ấn trên đối tượng.

Page 185: 68727097 Giao Trinh Visual Basic

Trang 185/286 Giáo trình Visual Basic

Ví dụ: Chương trình sau đây minh họa việc xử lý các sự kiện xảy ra trên một Textbox.

Txt1 chỉ cho nhập số.

Txt2 khi nhập chữ cái thì đổi sang chữ hoa.

Khi bấm Ctrl-R trên txt2 : màu chữ là màu đỏ

Khi bấm Ctrl-B trên txt2: Màu chữ là màu xanh

Option Explicit

Private Sub Command1_Click()

End

End S ub

Private Sub txt1_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

'Xoùa phím

End Sub

Page 186: 68727097 Giao Trinh Visual Basic

Trang 186/286 Giáo trình Visual Basic

Private Sub txt2_KeyDown(KeyCode As Integer, Shift As Integer)

If Shift = 2 Then

Select Case KeyCode

Case 82:

txt2.ForeColor = QBColor(4)

Case 66:

txt2.ForeColor = QBColor(2)

End Select

End If

End Sub

Private Sub txt2_KeyPress(KeyAscii As Integer)

Dim kytu As String

kytu = Chr(KeyAscii)

kytu = UCase(kytu)

KeyAscii = Asc(kytu)

End Sub

2. Sự Kiện Mouse

Mousedown, Mousemove, Mouseup

Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

End Sub

Page 187: 68727097 Giao Trinh Visual Basic

Trang 187/286 Giáo trình Visual Basic

Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

End Sub

Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

End Sub

Sự kiện Giải thích

MouseDown Xảy ra khi người sử dụng nhấn 1 nút chuột bất kỳ

MouseUp Xảy ra khi người sử dụng thả 1 nút chuột bất kỳ

MouseMove Xảy ra khi con trỏ chuột di chuyển đến 1 điểm mới trên màn hình

Form hay Object đều có thể bắt được sự kiện chuột khi con trỏ chuột đi ngang qua.

Tham số truyền

Tham số Giải thích

Button Cho biết nút chuột nào được nhấn

Shift Cho biết phím SHIFT hay CTRL hay ALT được nhấn

x,y Vị trí con trỏ chuột với hệ tọa độ của đối tượng bắt sự kiện

Page 188: 68727097 Giao Trinh Visual Basic

Trang 188/286 Giáo trình Visual Basic

Ví dụ:

Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Move X, Y

End Sub

Giá trị Button Giải thích

VbLeftButton =1 Left Button: phím trái chuột được bấm

VbRightButton =2 Right Button: phím phải chuột được bấm

VbMiddleButton =4

Middle Button: phím giữa chuột được bấm

Ví dụ: Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then ‘hay Button=vbLeftButton

Label1.Move X, Y

End If

If Button = 2 Then

Label2.Move X, Y

End If

If Button = 4 Then

Label2.Move 0, 0

Page 189: 68727097 Giao Trinh Visual Basic

Trang 189/286 Giáo trình Visual Basic

Label1.Move 0, 0

End If

End Sub

Giá trị Shift Giải thích

VbShiftMask =1 SHIFT: phím SHIFT được nhấn

VbCtrlMask = 2 CTRL: phím CTRL được nhấn

VbAltMask = 4 ALT: phím ALT được nhấn

Chú ý:

Nếu một tổ hợp các phím trên được nhấn đồng thời thì giá trị SHIFT sẽ là tổng các giá trị của các phím: ví dụ: phím CTRL và ALT được nhấn đồng thời thì Shift=6

Ví dụ: Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label2.Caption = Shift

End Sub=============================================

Ví dụ: Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Shift = 1 Then

Label2.Caption = "Nut SHIFT duoc bam"

Page 190: 68727097 Giao Trinh Visual Basic

Trang 190/286 Giáo trình Visual Basic

ElseIf Shift = 2 Then

Label2.Caption = "Nut CTRL duoc bam"

ElseIf Shift = 4 Then

Label2.Caption = "Nut ALT duoc bam"

Else

Label2.Caption = "To Hop phim duoc bam"

End If

End Sub=============================================

Ví dụ: Viết chương trình hiển thị tọa độ chuột khi chuột di chuyển trên Form.

Chúng ta sử dụng sự kiện MouseMove

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "(X, Y) = " & str(X ) & ", " & str(Y)

End Sub

3. Xử Lý Lỗi Run Time Error

Lỗi Runtime Error là những lỗi phát sinh khi chương trình đang thực hiện. Ví dụ như trong chương rình có lệnh load một tập tin từ dĩa, nhưng tập tin này không tồn tại. Nếu trong chương trình của chúng ta khôn có phần xử lý lỗi thì chương trình phải kết thúc ngay tại thời điểm này.

Các lệnh xử lý lỗi:

Page 191: 68727097 Giao Trinh Visual Basic

Trang 191/286 Giáo trình Visual Basic

On Error Goto <LineLabel>: Câu lệnh này thường được đặt ở trước các lệnh có thể gây ra lỗi (Đặt bẩy lỗi). Nó có ý nghĩa “Nếu có lỗi xãy ra thì đi đến dòng nhãn có tên được chỉ ra rồi bắt đầu thực hiện các lệnh ngay dưới dòng nhãn này. Một dòng nhãn là một chuỗi các ký tự có kèm theo dấu : phía sau. Lệnh On Error goto chỉ có tác dụng trong một thủ tục hoặc hàm.

On Error Resume Next: Khi có lỗi thì bỏ qua

On Error goto 0 : tắt bẫy lỗi

Đối tượng Err:

Đây là một đối tương có sẳn trong VB.

Có hai thuộc tính mà giá trị sẽ được tạo ra khi có lỗi đó là

o Number (Cho biết mã lỗi)

o Description (là chuỗi văn bản mô tả lỗi xãy ra).

Ví dụ: trong chương trình trên ta thêm vào phần xử lý lỗi trong hai thủ tục của nút lệnh Load và Luu

Private Sub Load_Click()

Dim filename As String

On Error GoTo Mess

filename = InputBox("Cho biet ten tap tin")

Rtxt1.LoadFile (filename)

Page 192: 68727097 Giao Trinh Visual Basic

Trang 192/286 Giáo trình Visual Basic

Rtxt1.SetFocus

Mess:

'Exit Sub

MsgBox Err.Description

End Sub

Private Sub Luu_Click()

Dim filename As String

On Error GoTo Mess

filename = InputBox("Cho biet ten tap tin")

Rtxt1.SaveFile (filename)

Mess:

'Exit Sub

MsgBox Err.Description

End Sub

4. Common Dialog

Đối tượng này hổ trợ người lập trình khi cần hiện một hộp thoại cho người sử dụng chọn khi thực hiện các thao tác:

Màu

Font chữ,

Open File

Save Save

Page 193: 68727097 Giao Trinh Visual Basic

Trang 193/286 Giáo trình Visual Basic

Print

Chỉ có một Common Dialog nhưng phụ thuộc vào phương thức Show đối tượng này sẽ hổ trợ một trong những chức năng trên.

Tên Phương thức

Open file Showopen

Save file Showsave

Color Showcolor

Font ShowFont

Print ShowPrint

Help ShowHelp

Tên của đối tượng này trong hộp thoại Component là: Microsoft Common Dialog Control 6.0

Đối tượng này không hiện trên Form khi chương trình chạy, trừ khi ta gọi phương thức Show của nó.

Dialog dùng để chọn Font:

Để sử dụng Dialog cho việc chọn font ta cần thiết lập giá trị cho các thuộc tính như sau(các thuộc tính này thông thường được cài đặt trong chương trình trước khi Show đối tượng này):

Flag: Thuộc tính này quy định dạng trình bày của dialog font. Giá trị của nó là một hoặc tổng các các hằng sau:

Page 194: 68727097 Giao Trinh Visual Basic

Trang 194/286 Giáo trình Visual Basic

Hằng Giá trị

Công dụng

CdlCFANSIOnly

1024 Chỉ hiện các font chuẩn của Windows, không hiện các font dạng biểu tượng

CdlCFBoth 3 Hiện tất cảc các font dùng cho máy in lẫn màn hình

CdlCFPrinterFonts

2 Chỉ hiện những Font dùng cho máy in

CdlCFScreenFonts

1 Chỉ hiện những font dùng cho màn hình

CdlCFEffects 256 Cho phép chọn các đặc tính của font (Underline, Strikethrough)

CdlCFLimitSize 8192

Cho phép quy định các con số trong danh sách chọn cở chữ nằm trong khoảng xác định bởi hai thuộc tính Max và Min

Max, Min: Hai thuộc tính này quy định kích thước nhỏ nhất và lớn nhất hiện trong Dialog font. Hai thuộc tính này chỉ có tác dụng khi thuộc tính Flag có chứa giá trị CdlCFLimitSize (8192)

Để Dialog hiện font ta gọi <tên Dialog>.Showfont

Sau khi Dialog Font hiện lên người sử dụng đã chọn thì ta có thể truy xuất đến các thuộc tính Fontname, Fontsize, FonBold, FonItalic, FontUnderline, Fonstrikethru

Page 195: 68727097 Giao Trinh Visual Basic

Trang 195/286 Giáo trình Visual Basic

Ví dụ: Hãy xem đoạn lệnh viết cho nút đổi Font của ví dụ trên

Private Sub CMD_FONT_Click()

C.Flags = 256 + 3

C.FontName = Rtxt1.SelFontName

C.FontBold = True

C.ShowFont

Rtxt1.SelFontName = C.FontName

Rtxt1.SelFontSize = C.FontSize

Rtxt1.SelColor = C.Color

Rtxt1.SelStrikeThru = C.FontStrikethru

Rtxt1.SelItalic = C.FontItalic

Rtxt1.SelBold = C.FontBold

Rtxt1.SelUnderline = C.FontUnderline

Rtxt1.SetFocus

End Sub

Dialog để chọn File:

Để sử dụng Dialog cho việc chọn File (trong thao tác Open hoặc Save) ta cần thiết lập giá trị cho các thuộc tính như sau(các thuộc tính này thông thường được cài đặt trong chương trình trước khi Show đối tượng này):

Dialog Title: Giá trị thuộc tính này là một chuỗi quy định tiêu đề của Dialog chọn file.

Page 196: 68727097 Giao Trinh Visual Basic

Trang 196/286 Giáo trình Visual Basic

InitDir: Là một chuỗi cho biết ỗ dĩa và thư mục Dialog sẽ trình bày khi mới hiện lên màn hình là ỗ dĩa và thư mục nào.

o Ví dụ: InitDir=”C:\Windows”

Flag: Thuộc tính này quy định cách trình bày Dialog chọn File. Thông thường nó được đặt bằng 0 (hoặc 3 trong trường hợp muốn hiện checkbox Open as read only trong hộp thoại)

Để hiện hộp thoại Open File ta gọi phương thức ShowOpen theo cú pháp:

o <Tên Dialog>.Showopen

Để hiện hộp thoại Save File ta gọi phương thức ShowSave theo cú pháp:

<Tên Dialog>.ShowSave

Sau khi Show hộp thoại ta có thể dựa vào các thuộc tính sau để thao tác:

o Filename : Chứa đường dẫn, tên tập tin đã chọn

o Filetitle: Chứa tên tập tin đã chọn

Ta thường sử dụng thuộc tính FileName cho các thao tác Open và Save

Ví dụ: đoạn mã lệnh cho nút Lưu và Load viết lại bằng cách sử dụng Common Dialog

Page 197: 68727097 Giao Trinh Visual Basic

Trang 197/286 Giáo trình Visual Basic

Private Sub Luu_Click()

C.Flags = 0

C.InitDir = "D:\"

C.DialogTitle = "Save As"

C.ShowSave

Rtxt1.SaveFile (C.filename)

End Sub

Page 198: 68727097 Giao Trinh Visual Basic

Trang 198/286 Giáo trình Visual Basic

5. Bài tập

1. Viết chương trình nhập liệu, sau khi nhập xong trong mỗi Text Box, bấm phím Enter để chuyển Focus qua Text Box kế tiếp. TextBox địa chỉ sau khi nhập xong sẽ chuyển Focus qua Command nhập liệu (xóa các dữ liệu đã nhập), và lại chuyển Focus về Text Họ và Tên.

2. Viết chương trình luyện tập sử dụng chuột: Picture hiển thị ngẫu nhiên trong chương trình trong 1 thời gian nhất định (khoảng 1 giây) và nếu người chơi bấm trúng Picture và đúng phím thì điểm cộng thêm 1, nếu không trúng thì điểm được trừ đi 1.

Page 199: 68727097 Giao Trinh Visual Basic

Trang 199/286 Giáo trình Visual Basic

CHƯƠNG 7: PHẦN NÂNG CAO

NỘI DUNG:

CÔNG CỤ WINDOWS COMMON CONTROLS: CÔNG CỤ IMAGELIST TOOLBAR – UPDOWN CONTROL- SLIDER

THAO TÁC TRÊN TẬP TIN

1. Windows Common Control

Là tập hợp các control phổ biến cung cấp bởi Windows với tên của mục này là: Microsoft Windows common controls...

Các công cụ này hổ trợ người lập trình trong việc tạo ra các giao diện thân thiện với những người sử dụng quen với môi trường Windows.

Sau đây là một số công cụ thông dụng:

2. ImageList

Một control dùng để lưu trữ, quản lý các hình ảnh. Nó thường được dùng để lưu trữ các hình ảnh của những control khác như Toolbar, Listview, Treeview, Image combo

Đưa hình vào ImageList tại thời điểm thiết kế:

Page 200: 68727097 Giao Trinh Visual Basic

Trang 200/286 Giáo trình Visual Basic

Click phải vào biểu tượng ImageList trên Form – Chọn Properties

Ở phiếu General cho phép ta chọn kích thước ảnh lưu trong ImageList. Thuộc tính này chỉ có chọn trước khi đưa hình ảnh vào.

Nếu chúng ta chọn nhiều hình ảnh đồng thời, các ảnh phía sau sẽ được định dạng theo ảnh đầu tiên

Nên đưa các biểu tượng (ICO) vào ImageList vì kích thước nhỏ của nó. Hạn chế đưa file hình lớn (BMP, JPG), vì nó sẽ làm file EXE có kích thước lớn và khởi động chậm

Page 201: 68727097 Giao Trinh Visual Basic

Trang 201/286 Giáo trình Visual Basic

Phiếu Image cho phép đưa hình ảnh vào ImageList.

Click vào nút Insert Picture sau đó chọn tập tin hình ảnh. Có thể chọn nhiều tập tin cùng lúc.

Với mỗi hình ảnh đưa vào sẽ có một số Index để quản lý. Người lập trình cũng có thể quản lý nó bằng thông qua một chuỗi ký tự bằng cách sử dụng thuộc tính Key (thuộc tính này có phân biệt chữ hoa chữ thường).

Nút Remove cho phép xóa một hình ảnh trong ImageList. Việc này chỉ thực hiện được khi ImageList chưa kết hợp với các Control khác

Các tập tin ảnh gắn với các nút công cụ thông dụng được đặt trong thư mục:

c:\program files\microsoft visual studio\common\graphics\ bitmaps\tlbr_w95

Page 202: 68727097 Giao Trinh Visual Basic

Trang 202/286 Giáo trình Visual Basic

3. Toolbar

Thanh công cụ dùng các nút lệnh

Để tạo một thanh công cụ, trước hết ta phải tạo một ImageList để chứa các hình ảnh gắn với thanh công cụ.

Đưa thanh công cụ lên Form

Right Click trên thanh công cụ – chọn Properties

Trong phiếu General ta ấn định các thuộc tính:

o Mousepointer: Biểu tượng của con trỏ chuột khi khi Drag trên menu

Page 203: 68727097 Giao Trinh Visual Basic

Trang 203/286 Giáo trình Visual Basic

o ImageList:Tên của Imagelist chứa hình ảnh gắn với các nút trên thanh công cụ

o DisabledImageList:Tên của Imagelist chứa hình ảnh gắn với các nút trên thanh công cụ khi nút lệnh có thuộc tính Enabled bằng false

o HotImageList: tên của Imagelist chứa hình ảnh gắn với các nút trên thanh công cụ khi Drag chuột trên nút công cụ.

o ButtonHeight, ButtonWidth: Kích thước của nút.

o Appearance: Dạng thể hiện của thanh công cụ.

o Style:Dạng thể hiện của nút lệnh

o Textaligment:Lề của text trên nút lệnh.

Trong thẻ Button cho phép thêm, loại bỏ nút lệnh.

Page 204: 68727097 Giao Trinh Visual Basic

Trang 204/286 Giáo trình Visual Basic

Insert Button:Thêm nút mới

Remove Button: Loại bỏ một nút lệnh

Index: Chỉ số của một nút lệnh trên thanh công cụ. Chỉ số này dùng để truy xuất đến nút lệnh trong chương trình. Nó được tạo ra mỗi khi ta chèn một nút mới.

Caption: Nội dung hiện trên nút lệnh

Style:

o tbrDefault:Được sử dụng giống như một mục trong menu. Khi nút công cụ được Click thì một đoạn lệnh đợc thực hiện

o tbrCheck: Được dùng trong trường hợp muốn cài đặt giá trị của một thuộc tính nào đó có giá trị True/False

o tbrButtonGroup: Ấn định nút công cụ này thuộc vào một nhóm nút công cụ. Khi đó tại một thời điểm chỉ một trong các nút công cụ này đợc chọn.

o tbrSeparator: Ngăn cách giữa các nhóm nút công cụ.

o tbrDropDown: Khi click vào nút công cụ này sẽ xuất hiện Buttonmenu được gắn kèm với nó. Một nút có style là DropDown thì ta phải định nghĩa một menu button cho nó.

CÁC SỰ KIỆN TRÊN TOOLBAR:

ButtonClick: Xảy ra khi người sử dụng click vào một nút trên thanh công cụ.

Page 205: 68727097 Giao Trinh Visual Basic

Trang 205/286 Giáo trình Visual Basic

Private Sub tbtoolbar_ButtonClick(ByVal Button As MSComctlLib.Button)

End sub

o Sự kiện này có một tham số: Button cho biết Key của nút được ấn

ButtonDropDown: Xảy ra khi người sử dụng ấn vào mũi tên của một nút công cụ kiểu dropdown.

Private Sub tbtoolbar_ButtonDropDown(ByVal Button As MSComctlLib.Button)

End Sub

o Sự kiện này có một tham số: Button cho biết caption của nút được ấn

ButtonMenuClick: xảy ra khi người sủ dụng click vào một mục của ButtonMenu

Private Sub tbtoolbar_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu)

End Sub

o Sự kiện này có một tham số: Button cho biết text của mục menu được ấn

Tạo ToolBar bằng công cụ Wizard

Để sử dụng chức năng này ta thực hiện các bước sau:

Chọn menu Add-in – Add in Manager:

Page 206: 68727097 Giao Trinh Visual Basic

Trang 206/286 Giáo trình Visual Basic

Double click vào mục VB 6 Application Wizard

Click vào nút OK.

Bây giờ chọn mục Toolbar Wizard trong menu Add-in để tạo thanh công cụ.

Page 207: 68727097 Giao Trinh Visual Basic

Trang 207/286 Giáo trình Visual Basic

4. Updown control

Là công cụ dùng để tăng hoặc giảm một giá trị số.

Khi ta kết nối value của nó với một thuộc tính của đối tượng khác thì thuộc tính của đối tượng liên kết sẽ phụ thuộc vào gía trị của thuộc tính value

Một số thuộc tính đặc trưng của Updown:

Aligment: Quy định vị trí của Updown so với vị trí của đối tượng mà nó liên kết.

Buddy Control: Tên của đối tượng có thuộc tính liên kết với thuộc tính value Updown

Buddy Property: Thuộc tính muốn liên kết với thuộc tính value của updown

Value: Giá trị của updown hiện tại. Ta cũng có thể thay đổi giá trị của thuộc tính này.

Page 208: 68727097 Giao Trinh Visual Basic

Trang 208/286 Giáo trình Visual Basic

Min, Max : Giá trị nỏ nhất và lớn nhất của Updown

Increment: Giá trị mỗi lần tăng hoặc giảm khi click chuột vào updown.

5. Slider

Cũng có công dụng tăng hoặc giảm một giá trị số mỗi khi click chuột hoậc kéo chuột trên thanh trượt.

Thuộc tính Value của đối tợng này thường được dùng để thay đổi giá trị thuộc tính của một đối tượng khác.

Một số thuộc tính của Slider:

Value:Cho biết giá trị của Slider, có thể thay đổi giá trị của slider bằng cách gán giá trị mới cho thuộc tính này.

Max, Min: Giá trị nhỏ nhất, lớn nhất của thuộc tính value

Smallchange, Largechange: Giá trị thay đổi mỗi khi Drag chuột hoặc Click chuột trên Slider

6. Làm việc với tập tin (file)

Tập tin là một dãy các byte lưu trên đĩa. Khi ứng dụng truy cập đến tập tin, nó xem các byte như là ký tự, bản ghi,số, chuỗi...Có 3 kiểu truy cập tập tin:

Tuần tự: đọc và ghi các tập tin văn bản theo các chuỗi liên tục.

Page 209: 68727097 Giao Trinh Visual Basic

Trang 209/286 Giáo trình Visual Basic

Ngẫu nhiên: đọc và ghi tập tin văn bản hoặc nhị phân có cấu trúc theo các bản ghi có chiều dài xác định

Nhị phân: đọc và ghi các tập tin có cấu trúc không xác định.

Trong nội dung giáo trình này chỉ đề cập đến lọai tập tin tuần tự.

Mở tập tin tuần tự

Open pathname For | Input | Output | Append | As filenumber | Len = buffersize|

Khi mở một tập tin tuần tự với Input, tập tin phải có sẵn. Nếu không Visual basic sẽ báo lỗi. Khi ta mở một tập tin chưa có sẵn với Output hoặc Append lệnh Open sẽ tạo mới tập tin và mở nó.

Tham số tuỳ chọn Len chỉ ra số ký tự trong vùng đệm khi sao chép dữ liệu giữa tập tin và chương trình.

Sau khi mở tập tin với Input, Output hoặc Append ta phải đóng nó bằng lệnh Close.

Đọc nội dung tập tin vào chuỗi

Mở tập tin với Input. Sau đó, dùng dòng lệnh line Input #, Input() hoặc Input # để sao chép nội dung tập tin vào biến.

Visual basic cung cấp hàm Line để đọc ghi 1 ký tự hoặc một dòng vào tập tin.

Ví dụ: Đoạn code sau đọc từng dòng:

Dim LinesFromFile, NextLine As String

Do Until EOF(FileNum)

Line Input #FileNum, NextLine

LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)

Page 210: 68727097 Giao Trinh Visual Basic

Trang 210/286 Giáo trình Visual Basic

Loop

Mặc dù Line Input# nhận ra cuối chuỗi khi nó đọc đến ký tự xuống dòng, nhưng nó không lấy ký tự này khi đưa và biến.

Ghi chuỗi và tập tin

Để ghi nội dung biến vào tập tin, mở tập tin với Output hay Append, sau đó dùng Print #. Ví dụ, ghi nội dung của textbox vào tập tin:

Print #FileNum, Thebox.text

Visual basic cũng hỗ trợ lệnh Write #, dùng để ghi một danh sách các số, chuỗi vào tập tin. Dấu phẩy được dùng để tách biệt:

Dim strString as String, intNumber as Integer

strString = “AnyCharacters”

intNumber = 23456

Write #Filenum, strString, intNumber

Ví dụ sau đây lưu danh sách các phần tử trong combobox cbo1 vào file text c:\DurianGroup.txt

Page 211: 68727097 Giao Trinh Visual Basic

Trang 211/286 Giáo trình Visual Basic

CHƯƠNG 8: TÙY BIẾN MÔI TRƯỜNG IDE CỦA VISUAL BASIC

NỘI DUNG:

DANH SÁCH PREFIX

TÙY BIẾN GIAO DIỆN IDE

SỬ DỤNG TOOLBAR

CÁC SHORTCUT

MỘT SỐ THỦ THUẬT KHÁC

Khi làm việc với VB, có nhiều chọn lựa để tăng tốc thiết kế - phát triển chương trình.

1. Danh sách các Prefix được đề nghị nên sử dụng

2. Đóng Những Cửa Sổ Phụ

Sắp xếp màn hình làm việc cho thuận lợi nhất.

Page 212: 68727097 Giao Trinh Visual Basic

Trang 212/286 Giáo trình Visual Basic

Ví dụ, khi đang soạn thảo trong cửa sổ Code, bạn không cần ToolBox (hộp công cụ), cửa sổ Project Explorer, cửa sổ Properties, hay cửa sổ Form Layout.

Các cửa sổ đều có thể nhanh chóng được mở, nên chúng ta nên tối ưu màn màn hình làm việc trong một thời điểm cho lớn nhất.

Chúng ta có thể xem xét màn hình Code của 2 giao diện dưới đây: một giao diện mặc định, và một giao diện đã được tối ưu.

Page 213: 68727097 Giao Trinh Visual Basic

Trang 213/286 Giáo trình Visual Basic

3. Sử dụng Toolbar Standard

Sử dụng Toolbar Standard để hiển thị nhanh các cửa sổ, tùy biến màn hình làm việc. Để Sử dụng ToolBar Standard của VB :

Project Explorer Window

s

Properties Window

s

Form Layout W

indows

Object B

rower W

indows

ToolBox

Page 214: 68727097 Giao Trinh Visual Basic

Trang 214/286 Giáo trình Visual Basic

4. Sử Dụng Short Cut (Phím Tắt) Của Vb Hiển Thị Các Cửa Sổ

Project Explorer Window Ctrl + R

Properties Window F4

Form Window Shift + F7

Code Window F7

Di chuyển Focus giữa các cửa sổ Ctrl + Tab

5. Thả Nổi Các Cửa Sổ

Khóa hay Thả nổi thông qua Menu: [Tool]-[Option], và chọn Tab [Docking]

Cửa sổ được Dock (được chọn) và không Dock:

Page 215: 68727097 Giao Trinh Visual Basic

Trang 215/286 Giáo trình Visual Basic

6. Sử Dụng Edit Toolbar

Bật – tắt Edit ToolBar bằng Menu: [View]-[ToolBar]-[Edit]

List Properties/Methods

List Constants

Qick Info

Parameter Info

Com

plete Word

IndentO

utdentToggle B

reakpointC

omm

ent Block

UnC

omm

ent Block

Toggle Bookm

arkN

ext Bookm

arkPrevious B

ookmark

Clear A

ll Bookm

arks

Block Comment: Sử dụng để chuyển 1 đoạn mã lệnh (chọn chúng trong cửa sổ Code) thành lời chú giải

Page 216: 68727097 Giao Trinh Visual Basic

Trang 216/286 Giáo trình Visual Basic

(comment). Sử dụng để tắt 1 đoạn mã lệnh mà không cần xóa chúng. Mỗi dòng được thêm 1 dấu ‘ vào phía đầu trái.

UndoBlock Comment: Ngược lại với Block Comment, sử dụng để mở 1 đoạn mã lệnh đã có dấu ‘ vào phía đầu trái. Các dấu ‘ được xóa đi.

Toggle Bookmark: thiết lập hay xóa đi các Bookmark trong mã lệnh. Các Bookmark dùng để đánh dấu các vị trí nào đó, làm cho việc di chuyển giữa các vị trí đó dễ dàng và nhanh chóng.

Next Bookmark, Previous Bookmark: di chuyển tới và lùi giữa các Bookmark.

Clear All Bookmark: xóa tất cả các Bookmark

Indent và Out dent: sử dụng để thụt hàng vào hay ra 1 dòng lệnh hay khối lệnh. Nên thụt hàng phân cấp theo vai trò của các lệnh khi viết Code, việc này giúp cho chương trình trở nên trong sáng và dễ sửa chữa, nâng cấp.

7. Thay Đổi Các Xác Lập Của Môi Trường VB

Sử dụng Menu: [Tools]-[Option] và chon các Tab xác lập

Tùy biến môi trường làm việc trên Visual basic: Tools -> Option

Page 217: 68727097 Giao Trinh Visual Basic

Trang 217/286 Giáo trình Visual Basic

Tại thẻ Advanced cho phép chúng ta chọn mục SDI Development Environment dùng để chuyển môi trường làm việc của Visual Basic từ SDI (Single Document Interface) sang MDI (Multi Document Interface) hay ngược lại

Page 218: 68727097 Giao Trinh Visual Basic

Trang 218/286 Giáo trình Visual Basic

Thẻ Editor cho phép chúng ta tùy chọn:

Auto Syntax Check: tự động kiểm tra lỗi cú pháp

Require Variable Declaraion: yêu cầu biến phải khai báo. Tương tự chế độ Option Explicit

Tab Width: điều chỉnh kích thước nhảy Tab (số khỏang trắng) khi viết code

Thẻ General

Show Grid: Hiển thị lưới trên Form khi chúng ta đang thiết kế giao diện. Lưới giúp chúng ta dễ dàng gióng hàng đối tuợng.

Gird Width, Grid Height: kích thước lưới. Kích thước càng nhỏ, chỉnh cành chính xác, tuy nhiên giao diện sẽ bị rối.

Page 219: 68727097 Giao Trinh Visual Basic

Trang 219/286 Giáo trình Visual Basic

8. Sử Dụng Shortcuts (Phím Tắt) Khi Soạn Thảo Code

Chức năng Phím tắt

Xóa dòng lệnh tại vị trí hiện thời Ctrl + Y

Xóa từ phía bên trái Ctrl + Back Space

Xóa từ phía bên phải Ctrl + Delete

Tự động tìm và điền vào từ khóa, hay biến

Ctrl + Spacebar

Nhảy đến đầu Module lệnh hiện hành

Ctrl + Home

Nhảy đến cuối Module lệnh hiện hành

Ctrl + End

Thụt dòng (Indent) 1 đoạn mã lệnh

Chọn khối lện, và phím TAB (hay Edit Toolbar)

Canh dòng ra trái (Outdent) 1 đoạn mã lệnh

Chọn khối lện, và phím Shift+TAB (hay Edit Toolbar)

Nhảy đến 1 Procedure từ tên Procedure (chỉ sử dụng cho hàm tự viết) – sử dụng để kiểm tra lại hàm tự viết

Shift+F2

Page 220: 68727097 Giao Trinh Visual Basic

Trang 220/286 Giáo trình Visual Basic

Quay về vị trí đang gọi hàm (khi đang ở trong đoạn mã định nghĩa hàm) sau khi sử dụng Shift+F2

Ctrl+Shift+F2

Và một số phím tắt khác khi sọan thảo code

Chức năng Phím tắt

Xem cửa sổ Code F7

Xem cửa sổ Object Browser F2

Tìm kiếm CTRL + F

Thay thế CTRL + H

Tìm tiếp SHIFT + F4

Tìm ngược SHIFT + F3

Chuyển đến thủ tục kế tiếp CTRL + DOWN ARROW

Chuyển đến thủ tục trước đó CTRL + UP ARROW

Xem định nghĩa SHIFT + F2

Cuộn xuống 1 màn hình CTRL + PAGE DOWN

Cuộn lên một màn hình CTRL + PAGE UP

Nhảy về vị trí trước đó CTRL + SHIFT + F2

Chức năng Phím tắt

Dời con trỏ sang phải 1 từ CTRL + RIGHT ARROW

Dời con trỏ sang trái 1 từ CTRL + LEFT ARROW

Page 221: 68727097 Giao Trinh Visual Basic

Trang 221/286 Giáo trình Visual Basic

Dời con trỏ về cuối dòng END

Dời con trỏ về đầu dòng HOME

Lấy lại hành động trước đó CTRL + Z

Canh trái TAB

Xoá tất cả các điểm dừng (break-points)

SHIFT + SHIFT + F9

Xem menu cảm ngữ cảnh SHIFT + F10

9. Tách Cửa Sổ Soạn Thảo

Dùng để xem một lúc 2 Code Procedure cùng 1 lúc trong 2 cửa sổ độc lập nhau. Thích hợp cho chương trình có nhiều Procedure. Sử dụng Menu: [Winow]-[Split] hay Split Bar.

Để hủy bỏ chế độ Split Window, Chọn Menu: [Winow]-[Split] hay kéo Split Bar lên trên.

Page 222: 68727097 Giao Trinh Visual Basic

Trang 222/286 Giáo trình Visual Basic

10. Kéo Và Thả

Sử dụng khả năng Kéo và Thả của chuột để di chuyển khối lệnh: Chọn khối lệnh và kéo đến vị trí mới.

Sử dụng khả năng Kéo và Thả của chuột để Copy khối lệnh: Chọn khối lệnh và kéo đến vị trí cần dán, trong khi kéo thì giữ phím Ctrl.

11. Tạo Nhiều Đối Tượng Nhanh

Khi cần tạo nhiều đối tượng cùng loại, bình thường mỗi lần vẽ phải chọn lại (bằng cách Click chuột) đối tượng đó từ Toolbox.

Để tạo nhiều đối tượng cùng loại một cách nhanh chóng – các đối tượng này lấy tên khác nhau, không phải tạo mảng đối tượng, khi chọn ToolBox cho đối tượng đầu tiên, giữ phím Ctrl khi Click. Việc tạo các đối tượng thứ 2,3… được tiến hành trong khi vẫn giữ phím Ctrl.

Để tạo nhiều đối tượng cùng loại một cách nhanh chóng – các đối tượng trong 1 mảng đối tượng, sử dụng khả năng Copy và Dán các đối tượng.

12. Sử Dụng Form Editor Toolbar

Sử dụng toolbar này để nhanh chóng thiế kế và canh chỉnh đối tượng

Để mở Form Edittor Toolbar: Từ Menu: [View] – [ToolBar]-[Form Editor]

Với các nút lệnh từ trái qua phải:

Page 223: 68727097 Giao Trinh Visual Basic

Trang 223/286 Giáo trình Visual Basic

Send to Front: đưa đối tượng lên trên đối tượng khác

Send to Back: đưa đối tượng xuống dưới đối tượng khác

Align Objects: gióng hàng.

Center Object In Form: cho đối tượng nằm giữa Form

Make Same Size: điều chỉnh kích thước nhóm đối tượng

Lock Controls On Form: Khóa đối tượng trên Form. Không cho phép di chuyển.

13. Điều Chỉnh Đối Tượng Bằng phím

Điều chỉnh vị trí đối tượng bằng bàn phím (keyboard)

Chọn đối tượng cần điều chỉnh

Giữ phím Ctrl, và chọn phím di chuyển (lên, xuống, qua trái, sang phải) để di chuyển đối tượng theo hướng được chọn. (Mỗi lần di chuyển sẽ qua đường lưới kế tiếp)

Điều chỉnh kích thước đối tượng bằng bàn phím (keyboard)

Page 224: 68727097 Giao Trinh Visual Basic

Trang 224/286 Giáo trình Visual Basic

Chọn đối tượng cần điều chỉnh

Giữ phím Shift, và chọn phím di chuyển (lên, xuống, qua trái, sang phải) để thay đổi kích thước đối tượng theo hướng được chọn.

14. Sử Dụng Colot Palette để chọn màu

Visual Basic cung cấp cho chúng ta công cụ Color Palette để chọn màu (nền, font chữ) khi thiết kế giao diện.

Để hiển thị Color Palette, chọn menu View-> Color Palette.

Chúng ta chọn lọai (font chữ hay màu nền) sau đó chỉ việc chọn màu sắc cho các đối tượng trên Form.

15. Sử Dụng Shortcuts Để Thực Thi Một Project

Page 225: 68727097 Giao Trinh Visual Basic

Trang 225/286 Giáo trình Visual Basic

Chức năng Phím tắt

Thực thi Project hiện hành (From Design Time)

F5

Tiếp tục Thực thi Project (From Break Time)

F5

Khởi động lại Project (From Break Time) Shift + F5

Dừng Project đang thi hành Ctrl + Break

Bắt đầu thực thi Project thông qua từng dòng lệnh đơn (Dùng cho việc kiểm tra và Debug)

F8

16. Sử Dụng Object Brower

Object Brower của VB được xem như một nguồn thông tin quan trọng để xem xét Objects, properties, methods, Events hay các hằng số được định nghĩa sẵn của các đối tượng VB, các đối tượng của các ứng dụng khác VB, các Active X controls.

Object Brower còn là một bảng tổng hợp về Project hiện hành, với các Objects, Properties, Procedures được định nghĩa trong Project hiện hành. Thông qua Object Brower để nhảy đến các phân đoạn Code trong chương trình

Để mở Object Browser: bấm phím F2 hoặc chọn menu View-Object Browser

Page 226: 68727097 Giao Trinh Visual Basic

Trang 226/286 Giáo trình Visual Basic

Ví dụ: Tìm bảng các hằng số màu được định nghĩa bởi VB

Mở Object Browser

Nhập vào từ khóa màu bất kỳ mà chúng ta nhớ (ví dụ: Vbred)

Nhấn nút tìm (hay bấm Enter)

Object Browser hiển thị toàn bộ các hằng số về màu trong danh sách

Page 227: 68727097 Giao Trinh Visual Basic

Trang 227/286 Giáo trình Visual Basic

Tự tìm hiểu về các đối tượng:

Property Icon

Choïn ñoái töôïng caàn tìmhieåu trong baûng Classes.Object Brower cuûa VBhieån thò caùc properties,methods, Events cuûa ñoáitöôïng töông öùng.

Event Icon

Method Icon

Chúng ta có thể sử dụng Object Brower để nhảy đến một vị trí Code nào đó trong chương trình

Project / LibraryBox

Choïn Project trong danh saùchProject / Library.Trong cöûa soå Classes seõ hieån thòcaùc Module vaø Form cuûa Project.Choïn Form caàn tìm. List Box phaûiseõ hieån thò caùc haøm söï kieän, haømtöï ñònh nghóa … cuûa Form töôngöùng. Ñeå nhaûy ñeán Procedure haySub naøo, Double Click treân haømtöông öùng.

Page 228: 68727097 Giao Trinh Visual Basic

Trang 228/286 Giáo trình Visual Basic

17. Sử dụng từ khóa With

Sử dụng With khi có đọan lệnh lặp lại nhiều lần với một đối tượng nào đó. With …End With giúp chương trình dễ đọc, viết nhanh hơn, rõ nghĩa hơn.

Không sử dụng With Sử dụng With…End With

Text1.Text = "Test"

Text1.FontBold = True

Text1.ForeColor = QBColor(13)

With Text1

. Text = "Test"

. FontBold = True

. ForeColor = QBColor(4)

End With

18. Sử Dụng giúp đỡ (Help)

Visual Basic đi kèm với bộ giúp đỡ rất mạnh và phong phú, đầy đủ, và chi tiết. Để cài bộ Help, chúng ta phải cài bộ đĩa MSDN Library sau khi cài xong Visual Studio. Để hiện giúp đỡ, chúng ta bấm phím F1 ngay tại các control, đọan lệnh… để hiện trợ giúp ngữ cảnh tương ứng

Page 229: 68727097 Giao Trinh Visual Basic

Trang 229/286 Giáo trình Visual Basic

PHỤ LỤC 1: CÀI ĐẶT VISUAL BASIC

Để cài đặt Visual Baisc 6.0, chúng ta sử dụng đĩa Visual Studio 6.0 hay còn gọi là Visual Studio 98 (1 CDROM). Nếu muốn cài đặt thêm bản giúp đỡ (help) cho Visual Basic 6.0, chúng ta cần có bộ đĩa MSDN 98 (2 CDROM).

Sau đây sẽ trình bày các bước cơ bản cài đặt Visual Basic 6.0

Bước 1:

Bỏ đĩa CDROM Visual Studio 98 vào.

Từ menu Start -> Run -> Browse->Chọn đĩa CDROM chứa chương trình-> Chọn file Setup.exe

Bước 2

Giao diện phần cài đặt xuất hiện. Chọn Next

Page 230: 68727097 Giao Trinh Visual Basic

Trang 230/286 Giáo trình Visual Basic

Bước 3

Màn hình “End User License Agreement” xuất hiện. Chọn mục “I accept” và bấm nút Next

Bước 4

Màn hình nhập Product Number. Nhập vào Serial của phần mềm. (ví dụ: 415-0287065)

Bước 5

Page 231: 68727097 Giao Trinh Visual Basic

Trang 231/286 Giáo trình Visual Basic

Màn hình cho bạn chọn “Visual Studio 6.0 Professional Edition” hay “Server Applications”. Chọn mục đầu tiên, “Visual Studio 6.0 Professional Edition”. Click “Next”.

Bước 6

Chương trình bắt đầu thực hiện quá trình cài đặt với lời nhắn “Starting Visual Studio 6.0 Setup, please wait…”. Chúng ta phải đợi một vài phút.

Bước 7

Chương trình Setup sẽ nhắc bạn đóng bất cứ bản Visual Studio nào bạn đang thực thi. Nếu máy bạn chưa cài, thì chọn “Continue”.

Page 232: 68727097 Giao Trinh Visual Basic

Trang 232/286 Giáo trình Visual Basic

Bước 8

Đến bước này, chương trình sẽ xác nhận lại Product ID của bạn. Click “OK”.

Page 233: 68727097 Giao Trinh Visual Basic

Trang 233/286 Giáo trình Visual Basic

Bước 9

Nếu bạn muốn cài Visual Studio trong một folder khác, chọn nút “Change Folder”.

Click “Custom”

Bước 10

Đây là bước quan trọng nếu bạn muốn tiết kiệm đĩa và không cài các thàn phần không sử dụng do Visual Studio có rất nhiều chương trình và thư viện dùng cho các mục đích khác nhau.

Page 234: 68727097 Giao Trinh Visual Basic

Trang 234/286 Giáo trình Visual Basic

Bạn có thể bỏ chọn Visual C++, Visual FoxPro, Visual InterDev, ActiveX, Professional Tools.

Bạn nên chọn :Visual Basic, Data Access, Graphics và Tools (với dấu chọn)

Click nút “Continue”

Bước 11

Bộ cài đặt sẽ kiểm tra đĩa và tiến hành cài đặt phần mềm.

Page 235: 68727097 Giao Trinh Visual Basic

Trang 235/286 Giáo trình Visual Basic

Bước 12

Bước kế tiếp bạn sẽ được hỏi về việc cài đặt bộ giúp đỡ “MSDN Library”.

Nếu muốn cài đặt thì chọn “Install MSDN” và click “Next”.

Bước 13

Sau khi cài đặt (hoặc không) bộ MSDN, chương trình sẽ hỏi về việc cài đặt Install Shield”. Bỏ qua tiện ích này bằng cách không chọn nó và bấm Next

Bước 14

Chương trình đưa ra chọn lựa về việc cài đặt component cho sever. Bỏ qua phần này bằng cách bấm nút Next

Page 236: 68727097 Giao Trinh Visual Basic

Trang 236/286 Giáo trình Visual Basic

Bước 15

Bước cuối cùng bạn sẽ được nhắc nhở về việc đăng ký với Microsoft về bản Visual Studio đang sử dụng. Nếu không muốn đăng ký, bỏ chọn “Register Now” và bấm nút “Finish”.

Quá trình cài đặt đã kết thúc.

Page 237: 68727097 Giao Trinh Visual Basic

Trang 237/286 Giáo trình Visual Basic

PHỤ LỤC 2: BÀI TẬP LUYỆN TẬP

1. Bài tập tổng hợp

1. Hãy tạo một Form trong đó chứa một menu có cấu trúc như sau:

Menu Exit dùng để kết thúc chương trình.

Menu Form LIGHT để show Form LIGHT lên màn hình

Menu Form STRING để show Form STRING lên màn hình

Menu Form ARRAY để show Form ARRAY lên màn hình

Form LIGHT:

Form này dùng 3 shape control để mô phỏng 3 đèn tín hiệu giao thông. Hãy viết code để thay đổi màu của shape cho phù hợp mỗi khi người sử dụng chọn một color trong Option group bên phải. Cụ thể như sau:

Khi người sử dụng chọn Option Red thì shape thứ nhất có màu đỏ, các shape còn lại có màu trắng.

Tương tự như thế cho hai trường hợp còn lại.

Nút Unload Me để Unload Form LIGHT

Page 238: 68727097 Giao Trinh Visual Basic

Trang 238/286 Giáo trình Visual Basic

Form ARRAY:

Nút Tạo mảng (10 –100) cho phép tạo giá trị ngẫu nhiên từ 10 đến 100 cho một mảng 20 phần tử, sau đó xuất giá trị của các phần tử trong mãng lên ListBox.

Option Số chia hết cho 4 hiển thị giá trị của các phần tử trong mãng mà thỏa điều kiện chia hết cho 4

Option Số >0 hiển thị giá trị của các phần tử trong mãng mà thỏa điều kiện >0

Option Số <0 hiển thị giá trị của các phần tử trong mãng mà thỏa điều kiện <0

Option Số chia hết cho N hiển thị giá trị của các phần tử trong mãng mà thỏa điều kiện chia hết cho N với N được nhập bởi hàm InputBox

Option Tất cả cho hiển thị giá trị của tất cả các phần tử trong mãng

Nút Unload cho phép unload Form này

Page 239: 68727097 Giao Trinh Visual Basic

Trang 239/286 Giáo trình Visual Basic

Form STRING:

Nút Nhập Họ và Tên cho phép nhập thêm một Họ tên mới bởi InputBox sau đó đưa vào ListBox họ tên.

Nút Số người có họ = ? cho biết có bao nhiêu người có họ giống với họ được nhập vào bởi hàm InputBox.

Nút Số người có tên = ? cho biết có bao nhiêu người có tên giống với tên được nhập vào bởi hàm InputBox.

Page 240: 68727097 Giao Trinh Visual Basic

Trang 240/286 Giáo trình Visual Basic

Các nút Tách Họ, Tách Chữ Lót, Tách Tên: tách các thành phần của tên vừa nhập và đưa vào các Listbox tương ứng.

2. Tạo một Project tính các khoản phí tổn của 1 sinh viên trong 1 năm học. Trình bày giống như hình bên.

Yêu cầu:

TextBox nhập “Tiền” chỉ cho phép nhập chữ số.

Khi nhấn nút Thêm thì thêm vào danh sách đồng thời xoá trắng các giá trị trong Textbox.

Nút Xoá dùng để xoá một mục ra khỏi danh sách.

Page 241: 68727097 Giao Trinh Visual Basic

Trang 241/286 Giáo trình Visual Basic

Nút Báo cáo sẽ in ra 1 báo cáo ở 1 Form khác bao gồm các khoản phí và tính tổng chi phi.

3. Hãy tạo một Project dùng để quản lý giờ thuê máy của một phòng máy có giao diện và yêu cầu như sau:

Khi Form vừa load lên màn hình thì

các image trong khung máy 1 và máy 2 có picture là Máy tính

Các Label có Caption= rỗng

Khi người sử dụng click vào image của máy 1 hoặc máy 2 thì:

Nếu là máy chưa thuê:

Đổi picture của image thành hình Đồng hồ

Hiện giờ hiện tại vào label bắt đầu của máy (label phía trên)

Nếu là máy đang thuê:

Hiện giờ hiện tại vào label Kết thúc của máy (label phía dưới)

Dựa vào Giờ và Phút (không cần quan tâm đến số giây) trên các label Bắt đầu và Kết thúc tính ra số tiến phải trả, rồi dùng Msgbox để thông báo (tiền thuê máy là 3000đ/giờ)

Đổi picture của image thành hình Máy tính

Xóa nội dung trong các Label Bắt đầu và Kết thúc

Khi người sử dụng Click vào nút Kết thúc thì kiểm tra nếu có máy đang thuê phải nhắc nhở người sử dụng bằng MsgBox, khi nào người sử dụng thật sự muốn kết thúc thì mới dừng chương trình.

Page 242: 68727097 Giao Trinh Visual Basic

Trang 242/286 Giáo trình Visual Basic

4. Hãy tạo một project có giao diên như sau:

Khi người sử dụng click vào mục kết thúc thì xuất hiện một Msgbox hỏi người sử dụng sau đó mới quyết định có dừng chương trình hay không.

Trong menu Cập Nhật có các mục:

Xóa học viên: Xóa tất cả các học viên đang chọn trong Lớp A và Lớp B. (các listbox Lớp A và Lớp B cho phép chọn cùng lúc nhiều mục)

Chuyển sang lớp A: Chuyển các mục đang chọn trong Lớp B sang Lớp A

Chuyển sang lớp B: Chuyển các mục đang chọn trong Lớp A sang Lớp B

Page 243: 68727097 Giao Trinh Visual Basic

Trang 243/286 Giáo trình Visual Basic

Lưu ý: Khi hai mục trên được chọn nếu không có học viên nào được chọn trong Listbox thì xuất hiện một msgbox yêu cầu người sử dụng phải chọn học viên trước

Nhập học viên mới: Khi mục này được chọn thì xuất hiện Form cho phép nhập thông tinh như sau:

ComboBox: chứa hai mục LỚp A và Lớp B

Khi người sử dụng Click vào nút cập nhật :

Nếu họ và tên khác rỗng thì:

Phụ thuộc vào lớp đã chọn trong ComboBox cập nhật họ tên vào ListBox tương ứng trên Form chính

Xóa nội dung của Textbox

Đưa con trỏ về Textbox

Nếu họ và tên bằng rỗng:

Xuất hiện một Msgbox yêu cầu phải nhập họ tên

Đưa con trỏ vế Textbox

Khi người sử dụng Click vào nút Trở về thì đóng Form nhập thông tin lại và quay trở về Form chính.

5. Hãy tạo một project giúp cho rạp chiếu phim quản lý việc bán vé của mình. Rạp có 6 hàng ghế, mỗi hàng có 3 ghế, các ghế được đánh số từ 1 đến 15 và được phân thành 3 lô như (hình bên):

Page 244: 68727097 Giao Trinh Visual Basic

Trang 244/286 Giáo trình Visual Basic

Giá vé lô A 1000/vé

Giá vé lô B 1500/vé

Giá vé lô C 2000/vé

Trên Form trình bày một sơ đồ các chổ ngồi để người sử dụng chọn vị trí muốn mua. Trên sơ đồ này cũng thể hiện những vị trí đã bán vé và những vị trí chưa bán vé bằng cách thể hiện màu khác nhau (ghế chưa bán vé màu trắng, ghế đã bán vé màu vàng). Khi người sử dụng click chuột tại một vị trí trên sơ đồ thì:

Nếu đây là vị trí chưa bán vé thì đổi màu của vị trí này sang màu xanh để cho biết đây là vị trí đang chọn.

Nếu đây là vị trí đang chọn (có màu xanh) thì đổi màu của vị trí này trở về màu trắng

Nếu đây là một vị trí đã bán vé thì xuất hiện một Message box thông báo cho người sử dụng biết.

Sau khi đã chọn các vị trí người shử sụng có thể click chuột vào nút CHỌN hoặc HỦY BỎ

Nếu click vào nút CHỌN thì:

Page 245: 68727097 Giao Trinh Visual Basic

Trang 245/286 Giáo trình Visual Basic

Đổi màu các vị trí đã chọn (màu xanh)trên sơ đồ sang màu vàng (cho biết vị trí đã bán vé)

Xuất lên một Label tổng số tiền phải trả cho số vé đã mua (phụ thuộc vào các vị trí đã chọn)

Nếu click vào nút HỦY BỎ thì:

Đổi màu các vị trí đã chọn (màu xanh) trên sơ đồ sang màu trắng trở lại

Xuất lên label giá trị 0

2. Đề thi trắc nghiệm

Q.1/ 60

Nếu Item1 có giá trị là 15 và Item2 =30, thì kết quả của chương trình Visual Basic sau đây xuất hiện ở Label1 là gì? If Item1 > Item2 Or (Item1 + 10) > Item2 Then Label1.Caption = "XXXX" ElseIf Item2 < Item1 Then Label1.Caption = "YYYY" Else Label1.Caption = "ZZZZ" End If

Các chọn lựa?

A) Empty

B) Không thể biết được

Page 246: 68727097 Giao Trinh Visual Basic

Trang 246/286 Giáo trình Visual Basic

C) Chương trình lỗi

D) XXXX

E) ZZZZ

F) YYYY

Q.2/ 60

Nếu biến Temp =95, thì kết quả xuất ra Label của đọan chương trình sau là bao nhiêu? If (Temp >= 70) Then Label1.Caption = "DurianGroup" ElseIf (Temp >= 80) Then Label1.Caption = "DurianGroup.Wordpress.com" ElseIf (Temp >= 90) Then Label1.Caption = "http://DurianGroup.Wordpress.com" End If

Các chọn lựa?

A) DurianGroup

B) Không có gì xuất ra label

C) Chương trình bị lỗi

D) http://DurianGroup.Wordpress.com

E) DurianGroup.Wordpress.com

F) Không thể xác định được

Page 247: 68727097 Giao Trinh Visual Basic

Trang 247/286 Giáo trình Visual Basic

Q.3/ 60

Trong chương trình sau, bao nhiêu lần Visual Basic thực hiện thông điệp MSgbox? For i = 2 to 8 Step 2 If i = 6 Then Exit For Msgbix i Next i

Các chọn lựa?

A) 8

B) 2

C) 4

D) 3

E) 6

F) 1

Q.4/ 60

Cho hàm định nghĩa như sau Sub SquareIt(byval num as integer) num = num * num * num * num End Sub Bạn có chương trình gọi hàm nói trên Sum = 4

Page 248: 68727097 Giao Trinh Visual Basic

Trang 248/286 Giáo trình Visual Basic

SquareIt Sum Sau khi chạy, giá trị của biến Sum là?

Các chọn lựa?

A) 64

B) 16

C) 4

D) 256

E) 0

Q.5/ 60

Hàm gì chuyển các ký tự trong một TextBox về dạng chữ thường (lower case)?

Các chọn lựa?

A) text1=Lcase(Text1)

B) ModCase(text1,"L")

C) Text1=Format(text1,"LowerCase")

D) ToLower(Text1.text)

E) LCase(Text1.text)

F) LowerCase(Text1.text)

Q.6/ 60

Page 249: 68727097 Giao Trinh Visual Basic

Trang 249/286 Giáo trình Visual Basic

Cho biết kết quả của chương trình sau đây là gi? Sub ProcA() On Error GoTo eh: Dim x as integer x = 1000 ProcB(x) msgbox "x = " + x Exit Sub eh: msgbox "Có lỗi" End Sub Sub ProcB(n as integer) dim y as integer, z as integer z = n/y msgbox "z = " + z msgbox "y - " + y End Sub Các chọn lựa?

A) x = 1000

B) Thông báo: "Có lỗi"

C) z = 1000, y = 1, x = 1000

D) chương trình bị lỗi và không thực hiện được

Q.7/ 60

Page 250: 68727097 Giao Trinh Visual Basic

Trang 250/286 Giáo trình Visual Basic

Form lọai gì sau đây là các Form khác trong cùng chương trình không thể được kích họat cho đến khi nó đóng lại?

Các chọn lựa?

A) Modeless Form

B) Startup Form

C) Modal Form

D) MDI Form

Q.8/ 60

Bạn có một Form tên là frmApplication, trên Form này chứa một textbox txtCreditLimit và một command button tên là cmdOK. Nếu người sử dụng nhập vào một giá trị lớn hơn 25000 thì cmdOK sẽ bị cấm (disabled.) Chọn sự kiện thích hợp?

Các chọn lựa?

A) txtCreditLimit_Click

B) txtCreditLimit_Change

C) txtCreditLimit_KeyPress

D) cmdOK_Click

Q.9/ 60

Page 251: 68727097 Giao Trinh Visual Basic

Trang 251/286 Giáo trình Visual Basic

Chương trình của bạn như sau Sub ProcA() Dim strProcNameA As String On Error GoTo ErrorHandler strProcNameA = "ProcA" Call Proc2(strProcNameA) ExitHere: MsgBox "It Worked!" Exit Sub ErrorHandler: MsgBox "Error in " + strProcNameA End Sub Sub ProcB(strName As String) strName = "ProcB" Call ProcC(strName) End Sub Sub ProcC(strName As String) strName = "ProcC" x = 1 / 0 End Sub Chương trình sẽ hiển thị ra gì trong thông điệm (message) đầu tiên sau khi bạn gọi call ProcA?

Các chọn lựa?

A) It Worked!

B) Error in ProcA

Page 252: 68727097 Giao Trinh Visual Basic

Trang 252/286 Giáo trình Visual Basic

C) Error in ProcB

D) Error in ProcC

Q.10/ 60

Chương trình của bạn chứa một frame tên là fraMyFrame. Trên frame này chứa 2 option buttons, dạng mảng đối tượng tên là optShowText. Đọan code code sau đây làm cho một text box control trên Form hiển thị khi người sử dụng chọn option button đầu tiên: Const SHOWTEXTBOX = 0 Const HIDETEXTBOX = 1 If Index = SHOWTEXTBOX Then txtMyText.Visible = True Else txtMyText.Visible = False End If Chọn sự kiện thích hợp để đưa đọan code nói trên vào?

Các chọn lựa?

A) optShowText(0)_Click

B) optShowText(1)_Click

C) optShowText_Click

D) fraMyFrame_Click

Q.11/ 60

Page 253: 68727097 Giao Trinh Visual Basic

Trang 253/286 Giáo trình Visual Basic

Chương trình của bạn có một text box tên là txtMyTextbox và một list box control tên là LstMyUstbox. Khi người sử dụng click chọn một phần tử trong LstMyListbox, bạn muốn giá trị đang chọn trong Listbox hiển thị vào textbox. Chọn chương trình thích hợp?

Các chọn lựa?

A) txtMyTextbox.Text = 1stMyListbox.Selected(lstMyListbox.Listlndex)

B) txtMyTextbox.Text = 1stMyListbox. ItemData(lstMyListbox.Listlndex)

C) txtMyTextbox = 1stMyListbox

D) txtMyTextbox.Text = 1stMyListbox(1stMyListbox. Listlndex).List

Q.12/ 60

Bạn có textbox tên là txtUserName dùng để nhập tên người sử dụng. Bạn có một command button Command1. Bạn muốn command button này chỉ họat động khi tên nhập vào txtUserName bằng tên của bạn. Chọn sự kiện (event) thích hợp để viết chương trình?

Các chọn lựa?

A) txtUserName _Change

B) txtUserName _LostFocus

C) txtUserName _Click

Page 254: 68727097 Giao Trinh Visual Basic

Trang 254/286 Giáo trình Visual Basic

D) txtUserName _Validate

Q.13/ 60

Bạn có một mảng gồm 3 menu (item 1, Item 2, Item 3) có tên là mnuFileItem với cấu trúc sau File Item 1 Item 2 Item 3 Bạn muốn viết đọan code để bật tất cả menu ỡ vị trí chọn?

Các chọn lựa?

A)

For Each menu In mnuFileItem . Checked = True Next mnuFileItem

B)

For i = 0 to 2 nuFileItem(i).Checked = True Next i

C)

With mnuFileItem . Checked = True End With

D) With mnuFileItem

Page 255: 68727097 Giao Trinh Visual Basic

Trang 255/286 Giáo trình Visual Basic

. Checked(0) = True . Checked(1) = True . Checked(2) = True End With

Q.14/ 60

Đọan code nào sau đây sẽ chọn tất cả các phần tử của listbix lstForms?

Các chọn lựa?

A)

For i = 0 To lstForms.ListCount - 1 lstForms.List(i).Selected = TRUE Next

B) For i = 0 To lstForms.ListCount - 1 lstForms.Selected(i) = TRUE Next

C) For i = 0 To lstForms.ListCount - 1 lstForms.List(i).SetFocus Next

D) For i = 1 To lstForms.ListCount lstForms.Selected(i) = TRUE Next

Q.15/ 60

Page 256: 68727097 Giao Trinh Visual Basic

Trang 256/286 Giáo trình Visual Basic

Bạn muốn thay đổi màu chữ của một TextBox. Chọn thuộc tính thích hợp? Các chọn lựa?

A) ColorText

B) ForeColor

C) TextColor

D) FontColor

E) FillColor

F) Color

Q.16/ 60

Ứng dụng của bạn có một menu mnuCsutomer, với 2 menu con là - Find và Edit. Menu Edit hiện nay đang bị cấm. (disabled). Bạn muốn người sử dụng tìm một khách hàng (customer) trước khi có thể chọn menu Edit. Bạn muốn viết code để cho phép cập nhật khách hàng. Chọn đọan code thực hịên?

Các chọn lựa?

A) Private Sub MnuCustomer_Click() MnuFind.Visible=True EndSub

B) Private Sub MnuEdit_Click() MnuEdit.Visible=True

Page 257: 68727097 Giao Trinh Visual Basic

Trang 257/286 Giáo trình Visual Basic

EndSub

C) Private Sub MnuFind_Click() MnuEdit.Visible=True EndSub

D) Private Sub MnuFind_Click() MnuEdit.Enabled=True EndSub

Q.17/ 60

Xem xét chương trình dưới đây Private Sub cmdProcess_Click() Call MyProcA EndSub Sub MyProcA() On Error goto ErrorHanler Text1="MyProcA" Call MyProcB Text3="MyProcC" Exit Sub ErrorHanler: Msgbox "đã có lỗi." ‘-------------CODE Còn thiết ở đây ------------- End Sub Sub MyProcB()

Page 258: 68727097 Giao Trinh Visual Basic

Trang 258/286 Giáo trình Visual Basic

Text2="MyProcB" Call MyProcC End Sub Sub MyProcC() Dim vDiv Vnum=3/vDiv Text2=vNum End Sub Chọn đọan code tương ứng bên dưới để chèn vào chương trình để cho phép chương trình vẫn tiếp tục thực hiện khi có lỗi xảy ra?

Các chọn lựa?

A) Resume

B) Exit Sub

C) Resume Next

D) Exit

E) Exit For

F) Exit Function

Q.18/ 60

Bạn có 2 menu trong chương trình là mnuView và mnuReports. Menu MnuView dùng để điều khiển việc họat động của mnuReports. Bạn muốn khi người sử dụng chọn mnuView, nếu mnuView chưa được chọn, nó sẽ cho phép menu mnuReports họat động , đồng thời chính nó sẽ có dấu check để đánh dấu là đã được chọn. Khi người sử dụng chọn mnuView, nếu mnuView đã được chọn, nó

Page 259: 68727097 Giao Trinh Visual Basic

Trang 259/286 Giáo trình Visual Basic

sẽ không cho phép menu mnuReports họat động , đồng thời chính nó sẽ tắt dấu check để cho biết là không được chọn. Chọn lệnh thực hiện điều này?

Các chọn lựa?

A)

Private Sub mnuView_Click() MnuToolbar.Enable=True MnuReports.Checked=True End sub

B)

Private Sub mnuReport_Click() MnuReports.Checked=Not MnuReports.Checked tblReports.Visible=Not tblReports.Visible End sub

C)

Private Sub mnuView_Click() MnuReports.Checked=True MnuView.Visible=True End sub

D)

Private Sub mnuReport_Click() MnuReports.Checked=True tblReports.Visible=True End sub

Q.19/ 60

Page 260: 68727097 Giao Trinh Visual Basic

Trang 260/286 Giáo trình Visual Basic

Chọn đọan lệnh gây ra lỗi cú pháp (syntax)?

Các chọn lựa?

A)

Dim vPercent as Integer Dim vNum as Integer vPercent =vNum * -100

B)

if vlwWatch="DurianGroup" then vType="123" else vType="789"

C)

Private vrtype as Integer Private vrPick as string Vrtype=1vrPick ="4" if vrtype = vrPick then Text1.Text="DurianGroup" Else Text1.Text="DurianGroup.WOordpress.com" End if

D) Dim vHold as Boolean vHold ="DurianGroup"

Q.20/ 60

Giá trị của thuộc tính Name ___________

Các chọn lựa?

Page 261: 68727097 Giao Trinh Visual Basic

Trang 261/286 Giáo trình Visual Basic

A) Không thể sửa lúc Runtime

B) Không tồn tại lúc Runtime

C) Không thể sửa lúc Designtime

D) Không thể đọc lúc runtime

Q.21/ 60

Để ngăn người sử dụng đưa focus vào một button với bất cứ cách nào, bạn nên ___________

Các chọn lựa?

A) Thiết lập thuộc tính TabStop =0.

B) Thiết lập thuộc tính TabIndex =0.

C) Thiết lập thuộc tính Focus = False

D) Thiết lập thuộc tính Enabled =False

Q.22/ 60

Lệnh nào sau đây sẽ gán giá trị Caption của CommandButton vào nội dung của textbox Text1

Các chọn lựa?

A) Text1 = Command1.Caption

B) Text1.Text = CStr(Command1)

C) Text1 = Command1.Text

D) Text1.Text = Command1.Text

Page 262: 68727097 Giao Trinh Visual Basic

Trang 262/286 Giáo trình Visual Basic

Q.23/ 60

Nếu thuộc tính Enabled của TextBox là False, thì

Các chọn lựa?

A) text trong textbox sẽ mờ, người sử dụng có thể đưa con trỏ vào được nhưng không thể thay đổi nội dung textbox

B) text trong textbox sẽ mờ, người sử dụng không thể đưa focus vào textbox được, và không sửa nội dung được

C) text trong textbox vẫn sáng, người sử dụng có thể đưa con trỏ vào được nhưng không thể thay đổi nội dung textbox

D) text trong textbox vẫn sáng, người sử dụng không thể đưa con trỏ vào được nhưng không thể thay đổi nội dung textbox

Q.24/ 60

Để hủy bõ một Form ra khỏi bộ nhớ, chúng ta dùng lệnh _____________

Các chọn lựa?

A) End

B) Show

C) Exit

Page 263: 68727097 Giao Trinh Visual Basic

Trang 263/286 Giáo trình Visual Basic

D) Unload

Q.25/ 60

Bạn muốn viết một hàm tên là Calculate. Hàm này có 2 tham trị kiểu Integer và trả về giá trị kiểu số LONG. Chọn khai báo thích hợp nhất?

Các chọn lựa?

A) Public Sub Calculate (intX as Integer, intY as Integer) as Long

B) Sub Calculate (intX as Integer, intY as Integer) as Long

C) Function Calculate (ByVal intX as Integer, ByRef intY as Integer) as Long

D) Function Calculate (ByVal intX as Integer, ByVal intY as Integer) as Long

E) Private Sub Calculate (intX as Integer, intY as Integer) as Long

F) Function Calculate (intX as Integer, intY as Integer) as Long

Q.26/ 60

MDI Form là Form gì?

Các chọn lựa?

A) Một Form hiển thị dạng Model

Page 264: 68727097 Giao Trinh Visual Basic

Trang 264/286 Giáo trình Visual Basic

B) Một Form như to hơn về kích thước so với các Form khác

C) Một Form chứa các Form khác

D) Một Form liên kết đến Form khác

Q.27/ 60

Nếu từ khóa Option Explicit được khai báo trong một module, thì tác dụng của nó là

Các chọn lựa?

A) Mọi biến sẽ là Variant

B) Mọi biến sẽ có giá trị NULL

C) Mọi biến sẽ có giá trị 0

D) yêu cầu tất cả các biến phải được khai báo tường minh

Q.28/ 60

Chương trình sẽ hiển thị giá trị gì khi nút lệnh btnDiaplay được click? Private Sub btnDisplay_Click() Dim num As Double = 9 txtBoxResult.Text = CalculateSquareRoot(num) End Sub Function CalculateSquareRoot(ByVal NumberArg As Double) As

Page 265: 68727097 Giao Trinh Visual Basic

Trang 265/286 Giáo trình Visual Basic

Double If NumberArg < 0 Then MsgBox "Error - cannot find square root - result set to zero" CalculateSquareRoot=0 Else CalculateSquareRoot=Sqrt(NumberArg) End If End Function

Các chọn lựa?

A) 0

B) 12

C) 9

D) 6

E) 3

Q.29/ 60

Chương trình sẽ hiển thị giá trị gì khi nút lệnh btnDiaplay được click? Private Sub btnDisplay_Click() Dim word1, word2, word3 As String word1 = "First" word2 = "Second" word3 = "Third" Myproc(word1, word2, word3) End Sub

Page 266: 68727097 Giao Trinh Visual Basic

Trang 266/286 Giáo trình Visual Basic

Sub Myproc(ByVal var3 As String, ByVal var2 As String, ByVal var1 As String) txtBox.Text = var1 & var2 & var3 End Sub

Các chọn lựa?

A) SecondThirdFirst

B) ThirdSecondFirst

C) Program will be error

D) FirstSecondThird

E) No output

Q.30/ 60

Chương trình sẽ hiển thị giá trị gì khi nút lệnh btnDiaplay được click? Private Sub btnDisplay_Click() Dim x as String, y As String x = "tin" y = "can" Swap(x, y) txtOutput.Text = x & " " & y End Sub Sub Swap(ByRef x As String, ByVal y As String) Dim temp As String temp = x x = y

Page 267: 68727097 Giao Trinh Visual Basic

Trang 267/286 Giáo trình Visual Basic

y = temp End Sub

Các chọn lựa?

A) can tin

B) can can

C) Lỗi khi thực hiện chương trình

D) tin can

E) tin tin

Q.31/ 60

Bạn muốn tính giá trị của biểu thức: S= 1/2 + 2/3 + 3/4 + 4/5 + … + 99/100? Chọn đọan lệnh thích hợp?

Các chọn lựa?

A) For x = 1 To 100 s = s+(1 / (x + 1)) Next

B) For n = 1 To 99 s = s+(n / (1 + n)) Next

C) For d = 2 To 99 s = 1 / d + d / (d + 1) Next

Page 268: 68727097 Giao Trinh Visual Basic

Trang 268/286 Giáo trình Visual Basic

D) For q = 100 To 1 s =s+ ((q + 1) /q) Next

Q.32/ 60

Cho mảng khai báo như sau: Dim myArray(100) As Double Bạn muốn thiết lập tất cả giá trị của mảng thành 100. Chọn chương trình thích hợp?

Các chọn lựa?

A) For j = 0 to 100 myArray(j) = 100 Next

B) All options

C) For j = 1 to 100 myArray(j) = 100 Next

D) myArray() is already initialized to 100 by the Dim statement.

E) For i = 0 To 100 (i) = 100 Next

F) myArray = 100

Page 269: 68727097 Giao Trinh Visual Basic

Trang 269/286 Giáo trình Visual Basic

Q.33/ 60

Nếu bạn muốn tạo thêm một command button cho Form, bạn sẽ lấy command button này từ thành phần nào trong môi trường thiết kế của VB (Visual Basic environment)?

Các chọn lựa?

A) The Form window

B) The Properties window

C) The Toolbox

D) The Project window

Q.34/ 60

Để kết thúc chương trình, người ta dùng lệnh

Các chọn lựa?

A) Exit

B) Halt

C) End

D) Exit (0)

E) End Sub

Q.35/ 60

Page 270: 68727097 Giao Trinh Visual Basic

Trang 270/286 Giáo trình Visual Basic

Chương trình của bạn cho phép người khác chọn màu của Form. Bạn có 5 màu để chọn. Bạn nên sử dụng đối tương nào là thích hợp nhất?

Các chọn lựa?

A) option buttons

B) text boxes

C) check boxes

D) name boxes

Q.36/ 60

Để đưa hình ảnh vào một image control, ngừoi ta dùng thuộc tính _______

Các chọn lựa?

A) icon

B) graphic

C) image

D) picture

Q.37/ 60

Để xác định xem một option button có được chọn hay không, nguời ta dùng thuộc tính __________

Các chọn lựa?

A) Visible

Page 271: 68727097 Giao Trinh Visual Basic

Trang 271/286 Giáo trình Visual Basic

B) Enabled

C) Value

D) Caption

E) GotFocus

F) Selected

Q.38/ 60

Ba ký tự đầu được đề nghị (prefix) của label là __________.

Các chọn lựa?

A) lab

B) lb

C) l

D) la

E) lbl

F) lbe

Q.39/ 60

Nếu một biến được khai báo mà không chỉ định kiểu dữ liệu, thì biến đó sẽ có kiểu là ________

Các chọn lựa?

A) boolean

Page 272: 68727097 Giao Trinh Visual Basic

Trang 272/286 Giáo trình Visual Basic

B) variable

C) string

D) object

E) variant

Q.40/ 60

Nếu một hàm (Sub/Function) cần được gọi trong nhiều Form, thì hàm này nên được đặt trong __________

Các chọn lựa?

A) Một hàm khác

B) Form

C) module

D) Biến cục bộ

Q.41/ 60

Đối với một Listbox trong Visual Basic 6, để thêm 1 phần tử vào, người ta sử dụng phương thức _________

Các chọn lựa?

A) LisstIndex

B) AddValue

C) AddItem

D) AddList

Page 273: 68727097 Giao Trinh Visual Basic

Trang 273/286 Giáo trình Visual Basic

E) ItemAdd

F) List

Q.42/ 60

Cho mảng 2 chiều A được khai báo như sau: Dim A(0 To 3, 0 To 5) As Integer Mảng A chứa bao nhiêu phần tử?

Các chọn lựa?

A) 24

B) 3

C) 8

D) 10

E) 5

F) 15

Q.43/ 60

Khi button btnDisplay được click, thì kết quả của chương trình sẽ hiển thị? Private Sub btnDisplay_Click() Dim a As String, b As String txtBox.text=”” a = "A" b = "B"

Page 274: 68727097 Giao Trinh Visual Basic

Trang 274/286 Giáo trình Visual Basic

PrintWords(a, b) PrintWords(b, a) End Sub Sub PrintWords(ByVal a As String, ByVal b As String) txtBox.Text = a & b End Sub

Các chọn lựa?

A) ABBA

B) ab ba

C) AB BA

D) ABAB

E) abba

Q.44/ 60

Khi button btnDisplay được click, thì kết quả của chương trình sẽ hiển thị? Private Sub btnDisplay_Click() Dim var1, var2, var3, num As Integer var1 = 2 var2 = 4 var3 = 6 Add(num) txtBox.Text = CStr(num) End Sub Sub Add(ByRef num As Integer)

Page 275: 68727097 Giao Trinh Visual Basic

Trang 275/286 Giáo trình Visual Basic

Dim var1, var2, var3 As Integer num = var1 + var2 + var3 End Sub

Các chọn lựa?

A) 6

B) 12

C) 0

D) 8

Q.45/ 60

Khi button btnDisplay được click, thì kết quả của chương trình sẽ hiển thị? Private Sub btnDisplay_Click() Dim num As Integer num= 20 DoubleIt(num) txtBox.Text = CStr(num) End Sub Sub DoubleIt(ByRef var As Integer) var = var * 2 End Sub

Các chọn lựa?

A) 20

B) 0

Page 276: 68727097 Giao Trinh Visual Basic

Trang 276/286 Giáo trình Visual Basic

C) 40

D) 80

Q.46/ 60

Chọn phát biểu sai trong các phát biểu sau đây khi thực hiện với Visual Basic?

Các chọn lựa?

A) x = 10

B) If run then lblOut.Text = "True"

C) z = x + y

D) lblOut.Text = str(z)

E) x + y = y

F) y = 20

Q.47/ 60

Chọn đọan lệnh nào sau đây để thay đổi giá trị hiển thị trên Button Button1 thàn "Push Me" ?

Các chọn lựa?

A) Button1.Name = "Push Me"

B) Button1.Value = "Push Me"

C) Button1.SetText( "Push Me")

D) Button1.Caption = "Push Me"

Page 277: 68727097 Giao Trinh Visual Basic

Trang 277/286 Giáo trình Visual Basic

E) Button1.Print "Push Me"

F) Button1.Text = "Push Me"

Q.48/ 60

Trong VB6, Với Khai báo DIM a, b as integer thì a sẽ có kiểu biến gì?

Các chọn lựa?

A) boolean

B) string

C) long

D) integer

E) Kiểu dữ liệu khác

Q.49/ 60

Bạn muốn xóa tất cả các ohần tử trong listbox LstA. Chọn đọan code tương ứng?

Các chọn lựa?

A) LstA.Clear

B) LstA.Remove

C) LstA.removeItem LstA.ListCount-1

D) LstA.Unload

Page 278: 68727097 Giao Trinh Visual Basic

Trang 278/286 Giáo trình Visual Basic

E) LstA.RemoveAll

F) LstA.removeItem 0

Q.50/ 60

Cho chương trình sau đây, với Index là biến kiểu Integer và thisarray là một mảng (0 to 5) của các số Integer For index = 0 To 5 thisarray(index) = index Next For index = 0 To 5 Msgbox thisarray(index): 'Print Next Kết quả hiển thị khi thực thi chương trình lần luợt là?

Các chọn lựa?

A) 1 2 3 4 5 6

B) 5 5 5 5 5 5

C) 01 2 3 4 5

D) 0 0 0 0 0 0

Q.51/ 60

Consider the following statements: Dim i As Integer, j As Integer, k As Integer i = 3

Page 279: 68727097 Giao Trinh Visual Basic

Trang 279/286 Giáo trình Visual Basic

j = 5 k = 2 If i < j Then If i < k Then i = 4 Else i = 5 Phát biểu nào sau đây là đúng?

Các chọn lựa?

A) Sau khi thực hiện thì i = 4

B) Sau khi thực hiện thì i có giá trị khác 3 hoặc 4 hoặc 5

C) Chương trình bị lỗi

D) Sau khi thực hiện thì i = 5

E) Sau khi thực hiện thì i = 3

Q.52/ 60

Cho chương trình sau đây Sub Form_Load () Dim MyString As String * 5 Dim Index As Integer Dim s1 As String, s2 As String, s3 As String MyString = "ABCDE" For Index = 5 To 2 Step -1 s1 = Left(MyString, Index - 2) s2 = Mid(MyString, Index, 1) s3 = Right(MyString, 5 - Index + 1) MyString = s1 + s2 + s3 Next

Page 280: 68727097 Giao Trinh Visual Basic

Trang 280/286 Giáo trình Visual Basic

Msgbox MyString End Sub Kết quả hiển thị khi thực hiện chương trình là?

Các chọn lựa?

A) EEEEE

B) ABBBB

C) Chương trình bị lỗi

D) AAAAA

Q.53/ 60

Cho chương trình sau đây Sub Form_Load () Dim i, a As Integer, b As Integer i = 0 a = 4 b = 10 swap a, b Msgbox str(a) & " " & str( b) & " " Str( i) End Sub Sub swap (a As Integer, b As Integer) Dim Temp, i Temp = a a = b

Page 281: 68727097 Giao Trinh Visual Basic

Trang 281/286 Giáo trình Visual Basic

b = Temp i = 1 End Sub Cho biết kết quả sau khi chương trình thực hiện?

Các chọn lựa?

A) 10 4 0

B) 4 10 0

C) 10 4 1

D) 4 10 1

Q.54/ 60

Control nào phải tạo nhóm khi họat động?

Các chọn lựa?

A) OptionButtons

B) TextBoxes

C) CheckBoxes

D) Listbox

Q.55/ 60

Để viết chú thích (comment) trong Visual Basic

Các chọn lựa?

A) dùng dấu //

Page 282: 68727097 Giao Trinh Visual Basic

Trang 282/286 Giáo trình Visual Basic

B) /* comment */

C) dấu '

D) REM

Q.56/ 60

Hàm gì dùng để chuyển số qua chuỗi?

Các chọn lựa?

A) ToString

B) Str

C) Convert

D) ParseString

Q.57/ 60

Bao nhiêu lần MsgBox sẽ hiển thị khi thực thi chương trình sau? For Index = 0 To 2 MsgBox Index Next

Các chọn lựa?

A) 2

B) 0

C) 1

Page 283: 68727097 Giao Trinh Visual Basic

Trang 283/286 Giáo trình Visual Basic

D) 3

Q.58/ 60

Giá trị hiển thị cuối cùng khi thực hiện chương trình sau là bao nhiêu? Twos = 2 Do While Twos < 100 MsgBox Twos Twos = Twos * 2 Loop

Các chọn lựa?

A) 2

B) 100

C) 64

D) 128

Q.59/ 60

Chương trình nào sau đây sẽ tính tổng các giá trị từ 1 đến 100?

Các chọn lựa?

A) Sum = 0 For I = 1 To 100 Sum = Sum + I

Page 284: 68727097 Giao Trinh Visual Basic

Trang 284/286 Giáo trình Visual Basic

Next I

B)

Sum = 0 For I = 100 To 1 Step -1 Sum = Sum + I Next I

C)

Sum = 0 If I <= 100 Then Sum = Sum + I End If

D)

Sum = 0 do while I <= 100 Then Sum = Sum + I loop

E)

Sum = 0 do Sum = Sum + I loop while I <= 100

Q.60/ 60

Chương trình nào sau đây sẽ tính tổng các giá trị các số chẵn từ 1 đến 100?

Các chọn lựa?

A) Sum = 0 For I = 1 To 100 if i mod 2 =0 then Sum = Sum + I

Page 285: 68727097 Giao Trinh Visual Basic

Trang 285/286 Giáo trình Visual Basic

Next I

B)

Sum = 0 For I = 2 To 100 step 2 Sum = Sum + I Next I

C)

Sum = 0 For I = 1 To 100 Sum = Sum + 2 Next I

D)

Sum = 0 For I = 1 To 100 step 2 Sum = Sum + I Next I

Page 286: 68727097 Giao Trinh Visual Basic

Trang 286/286 Giáo trình Visual Basic

TÀI LIỆU THAM KHẢO

1. Programming in Visual Basic 6.0, Julia Case Bradley and Anita C. Millspaugh, McGraw-Hill

2. Programming Microsoft Visual Basic 6.0, Francesco Balena, Microsoft Press

3. Microsoft Visual Basic 6.0 Programer's guide, Microsoft Press

4. Microsoft Visual Basic 6.0 Introduction to Programming, Michael Sprague, Phillips

5. Programming With Visual Basic 6, Boek ▪ Edward Coburn & Edward J. Coburn

6. Lập trình Windows 1, Phạm Quang Tri