Bài giảng Tin học đại cương - Chương 6: Lập trình với Visual Basic 6.0

Input Box (tt) Mặc dầu Input Boxes rất dễ dùng, trên thực tế rất ít khi ta dùng nó vì những lý do sau đây: – Trong lúc user input data, phải đợi sau khi user click OK thì mới bắt đầu xử lý input textstring. Nếu dùng một Textbox trong một Form thông thường, ta có thể code trong các Event handlers của Events KeyPress hay Change để kiểm soát các keystrokes của user. – Input Boxes chỉ cho nhập vào một text string duy nhất. – Input Boxes xem không đẹp mắt. Program dùng Input Boxes có vẻ như không chuyên nghiệp, do đó ta cần phải dùng Custom Dialogs.

pdf36 trang | Chia sẻ: vutrong32 | Lượt xem: 1477 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Tin học đại cương - Chương 6: Lập trình với Visual Basic 6.0, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
bangtqh@utc2.edu.vn TIN HỌC ĐẠI CƯƠNG Chương 6: Lập trình với Visual Basic 6.0 Dùng cho nhóm ngành: Công trình + Cơ khí bangtqh@utc2.edu.vn Nội dung 1. Soạn thảo chương trình 2. Các kiểu dữ liệu cơ bản của VB 3. Các toán tử thông dụng trong VB 6.0 4. Các cấu trúc điều khiển – Rẽ nhánh – Lặp 5. Gỡ rối (debug) trong VB IDE 6. Các hộp thoại (dialog) thông dụng Tin học đại cương - Chương 6 2 bangtqh@utc2.edu.vn 6.1. Soạn thảo chương trình Nhắc lại – Forms là cái nền hay khung để ta xây dựng User Interface. – Controls là những viên gạch để ta dùng xây dựng User Interface. – Event procedures là code nằm phía sau những hình ảnh, nó là chất keo dùng để dán các Controls lại với nhau để tạo thành chương trình áp dụng của ta. Soạn thảo chương trình trong VB 6.0 thực chất là viết code cho từng sự kiện mà ta quan tâm để đáp ứng lại những hành động của người sử dụng Tin học đại cương - Chương 6 3 bangtqh@utc2.edu.vn 6.1. Soạn thảo chương trình (tt) Trong cửa sổ viết code: – Cần chọn Control trong ô bên trái – Chọn tiếp Event của control đó trong ô bên phải. – Thủ tục (Procedure) xử lý event đó sẽ có dạng: Tin học đại cương - Chương 6 4 Private Sub TênControl_TênEvent (Tham số nếu có) các lệnh xử lý do người viết chương trình đưa vào End Sub bangtqh@utc2.edu.vn 6.1. Soạn thảo chương trình (tt) Một số event thông dụng – Form_Load: Xuất hiện khi 1 form bắt đầu được tải và hiển thị trên màn hình. – Control_Click: Xuất hiện khi người dùng click chuột vào 1 control – Control_DbClick: Xuất hiện khi người dùng click đúp chuột vào control – Control_KeyPress: Xuất hiện khi người dùng nhấn 1 phím. Ta thường dùng nó cho TextBox để loại ra các phím không chấp nhận. KeyPress cho ta mã ASCII là số có giá trị từ 1 đến 255 của key. – Control_DragDrop: Xuất hiện khi người dùng kéo và thả một cái gì lên control Tin học đại cương - Chương 6 5 bangtqh@utc2.edu.vn 6.1. Soạn thảo chương trình (tt) Một số event thông dụng (tt) – Control_GotFocus: Xuất hiện khi 1 control đang ở trạng thái inactive chuyển thành active và nhận được tương tác của người dùng. – Control_LostFocus: Ngược với GotFocus, tức 1 control đang ở trạng thái active chuyển sang trạng thái inactive – Control_MouseDown, Control_MouseUp: Xuất hiện khi người dùng click chuột. 1 lần click sẽ tương ứng với 1 lần MouseDown và 1 lần MouseUp. Việc xử lý event này sẽ giúp ta giải quyết tình huống vẽ hay kéo thả bằng chuột. Tin học đại cương - Chương 6 6 bangtqh@utc2.edu.vn 6.1. Soạn thảo chương trình (tt) Ví dụ: (*) Yêu cầu hoàn thiện code cho các Command Button còn lại Tin học đại cương - Chương 6 7 bangtqh@utc2.edu.vn 6.2. Các kiểu dữ liệu cơ bản trong VB  Chúng ta biết bộ trí nhớ (memory) của computer chứa những byte (8 bit) dữ liệu. Vd: computer của có 32MB memory thì chứa được khoảng hơn 32 triệu bytes.  Tất cả data trong máy tính đều được biểu diễn dưới dạng các con số. Mỗi con số đại diện cho một thứ gì đó, tùy theo quy ước của người dùng.  Một byte có thể chứa một con số từ 0 đến 255, tức là 28 -1 (2 lũy thừa 8 bớt 1) . Khi dùng bits ta đếm các số trong hệ thống nhị phân.  Thí dụ, khi bạn ấn phím A trên keyboard, keyboard sẽ gởi về computer con số 65 (01000001 trong nhị phân). Tin học đại cương - Chương 6 8 bangtqh@utc2.edu.vn 6.2. Các kiểu dữ liệu cơ bản trong VB (tt) Có 2 kiểu dữ liệu cơ bản trong VB 6.0 – Dữ liệu kiểu số – Dữ liệu không phải số: • Chuỗi ký tự (string) • Ngày giờ (Date) • Lôgic (Boolean) • Đối tượng (Object) • Variant Tin học đại cương - Chương 6 9 bangtqh@utc2.edu.vn Dữ liệu kiểu số Tin học đại cương - Chương 6 10 Byte – Độ lớn: 1 byte – Khoảng giá trị: từ 0 đến 255  Integer – Độ lớn: 2 bytes – Khoảng giá trị: từ -32,768 đến 32,767 Long – Độ lớn: 4 bytes – Khoảng giá trị: từ -2,147,483,648 đến 2,147,483,648 bangtqh@utc2.edu.vn Dữ liệu kiểu số (tt) Tin học đại cương - Chương 6 11 Single – Độ lớn: 4 bytes – Khoảng giá trị: • Số âm: từ -3.402823E+38 đến -1.401298E-45 • Số dương: từ 1.401298E-45 đến 3.402823E+38 Double – Độ lớn: 8 bytes – Khoảng giá trị: • Số âm: -1.79769313486232e+308 đến - 4.94065645841247e-324 • Số dương: 4.94065645841247e-324 đến 1.79769313486232e+308 bangtqh@utc2.edu.vn Dữ liệu kiểu số (tt) Currency – Độ lớn: 8 bytes – Khoảng giá trị: 922,337,203,685,477.5808 đến 922,337,203,685,477.5807 – Luôn có ký hiệu tiền tệ đi kèm Decimal – Độ lớn: 12 bytes – Khoảng giá trị: • +/- 79,228,162,514,264,337,593,543,950,335 • +/- 7.9228162514264337593543950335 (28 decimal places). Tin học đại cương - Chương 6 12 bangtqh@utc2.edu.vn Dữ liệu không phải kiểu số Chuỗi ký tự (String ) – Loại variable-length: độ dài cố định từ 1 đến 65,400 ký tự – Loại fixed-length (String*n): 10 bytes + độ dài chuỗi tới 2GB ký tự Ngày giờ (Date) – Độ lớn: 8 bytes – Khoảng giá trị: January 1, 100 tới December 31, 9999 Boolean – Độ lớn: 2 bytes – Khoảng giá trị: True hoặc False Tin học đại cương - Chương 6 13 bangtqh@utc2.edu.vn Dữ liệu không phải kiểu số (tt)  Kiểu Variant – Là kiểu dữ liệu không tường minh – nó có thể nhận bất kỳ giá trị nào có thể  lúc nó nhận dữ liệu kiểu này, lúc nhận dữ liệu kiểu khác. – Dạng số: 16 bytes, bất kỳ số nào nằm trong phạm vi số Double – Dạng chuỗi: lớn 22 bytes + độ dài chuỗi  Kiểu Type (do người dùng tự định nghĩa) – Là cấu trúc (record) gồm nhiều field, mỗi field có kiểu riêng theo nhu cầu  Kiểu mảng (Array) – Dãy gồm nhiều phần tử có cấu trúc đồng nhất, mỗi phần tử có thể được truy xuất nhờ chỉ số của nó trong dãy Tin học đại cương - Chương 6 14 bangtqh@utc2.edu.vn Biến Một ứng dụng thường xử lý nhiều dữ liệu, ta dùng khái nhiệm "biến" để lưu dữ liệu của chương trình VB không bắt buộc nhưng nên có khai báo rõ ràng từng biến trước khi truy xuất trong chương trình để tránh sai sót, dễ bảo trì và phát triển Khai báo biến – Khai báo tên nhận dạng cho biến – Kết hợp kiểu dữ liệu với biến để xác định dữ liệu biến được phép chứa – Khai báo tầm vực truy xuất biến Cú pháp: [Static|Public|Private|Dim] AVariable As Type Tin học đại cương - Chương 6 15 bangtqh@utc2.edu.vn Biến (tt) Đặt tên 1 biến – Dài tối đa 255 ký tự – Ký tự đầu tiên phải là chữ cái (letter) – Các ký tự tiếp theo có thể là chữ cái (letter), số (digit) hoặc dấu gạch dưới ( _ ) – Không được chứa các ký tự đặc biệt: ^, &, ), (, %, !, #, @, ~, +, -, *,... – Nên chọn cách đặt tên ngắn gọn, gợi nhớ đến ý nghĩa, mục đích sử dụng biến – Nên viết hoa chữ cái đầu tiên của mỗi từ trong tên biến (vd: TongCacSoChan, TichCacSoLe) – Không đặt tên biến trùng từ khóa (Sub, Print, End....v.v) Tin học đại cương - Chương 6 16 bangtqh@utc2.edu.vn Biến (tt)  Ví dụ khai báo biến Dim AStringVariable As String Dim AStringVariable As String*100 Dim AnIntegerVariable As Integer Dim ABooleanVariable As Boolean Dim ADateVariable As Date Dim AnArrayVariable (100) As Integer Type ANewType Field1Name As Integer Field2Name As String*40 Field3Name As Boolean Field4Name (10) As Double End Type Dim AVariantVariable As Variant Tin học đại cương - Chương 6 17 bangtqh@utc2.edu.vn Tầm vực truy xuất của biến Biến cục bộ – Được khai báo sau từ khóa Dim – Chỉ có tác dụng trong chương trình con, cục bộ trong một form hoặc một module nào đó Biến toàn cục – Được khai báo sau từ khóa Public – Có tác dụng trong toàn bộ chương trình – Loại biến này luôn phải khai báo ở vùng Declarations Tin học đại cương - Chương 6 18 bangtqh@utc2.edu.vn Hằng Có giá trị xác định và không hề thay đổi trong bất kỳ hoàn cảnh nào Khai báo hằng – Cú pháp: Const TênHằng = GiáTrịCủaHằng – Ví dụ: Const AConstantOfDate = #01/04/2000# Phạm vi của hằng – Giống như đối với biến, hằng toàn cục phải khai báo sau từ khóa Public – Ví dụ: Public Const A = 120 Tin học đại cương - Chương 6 19 bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB Dựa theo số lượng toán hạng ta có – Toán tử 1 ngôi: Chỉ cần 1 toán hạng – Toán tử 2 ngôi: Cần 2 toán hạng Dựa theo quy trình tính toán có các loại toán tử: – Toán tử số học – Toán tử so sánh – Toán tử luận lý và bitwise Tin học đại cương - Chương 6 20 bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Các toán tử số học Tin học đại cương - Chương 6 21 Toán tử Ý nghĩa Ví dụ + Phép cộng 2+3=5 - Phép trừ 10-9=1 ^ Phép lũy thừa 2^4=16 * Phép nhân 4*2=8 / Phép chia 12/4=3 Mod Phép chia lấy dư 15 Mod 2=1 \ Phép chia nguyên 21\4=5 & Nối chuỗi "Visual"&"Basic"="VisualBasic" bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Các toán tử so sánh Tin học đại cương - Chương 6 22 Toán tử Ý nghĩa Ví dụ Kết quả < Nhỏ hơn 2 < 3 True > Lớn hơn 5 > 15 False <= Nhỏ hơn hoặc bằng X <= 0 True | False >= Lớn hơn hoặc bằng R >= 5 True | False = So sánh bằng A = B True | False So sánh khác nhau A B True | False Like So sánh chuỗi Xem slide kế tiếp bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt)  Toán tử so sánh chuỗi "Like" – Cú pháp: AString Like Pattern – Công dụng: Xác định xem chuỗi AString có thuộc Pattern không? Nếu thuộc thì trả về True, ngược lại trả về False  Ví dụ: MyCheck = "aBBBa" Like "a*a"  True MyCheck = "F" Like "[A-Z]"  True MyCheck = "F" Like "[!A-Z]"  False MyCheck = "a2a" Like "a#a"  True MyCheck = "aM5b" Like "a[L-P]#[!c-e]"  True MyCheck = "aM5b" Like "a[L-P]#[!c-e]"  True MyCheck = "BAT123Khg" Like "b?T*"  True Tin học đại cương - Chương 6 23 bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Toán tử "Like" – Ký hiệu đại diện trong pattern • Dấu * Nhiều ký tự bất kỳ • Dấu ? Một ký tự bất kỳ • Dấu # Một chữ số [0-9] bất kỳ • [charlist] bất kỳ ký tự nào có trong charlist • [!charlist] Bất kỳ ký từ nòa không có trong charlist Tin học đại cương - Chương 6 24 bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Các toán tử luận lý Tin học đại cương - Chương 6 25 Toán tử Ý nghĩa And Và: cả 2 điều kiện điều True  kết quả True Or Hoặc: một trong các điều kiện True  kết quả True Xor Hai điều kiện có giá trị khác nhau  kết quả True Not Phủ định: True  False, False  True bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Một số hàm toán học thông dụng Tin học đại cương - Chương 6 26 Hàm Ý nghĩa Ví dụ Int Lấy số nguyên lớn hơn gần nhất Int(6.5) = 7 Sqr Lấy căn bậc hai Sqr(16) = 4 Abs Lấy trị tuyệt đối Abs(-2) = 2 Exp Lấy giá trị ex Exp(1) = 2.7182818284590 Fix Lấy phần nguyên Fix(6.5) = 6 Round Làm tròn Round(2.3554, 2) = 2.36 Log Lất giá trị log(x) Log(10) = 2.302585 bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Các hàm xử lý chuỗi thông dụng Tin học đại cương - Chương 6 27 Hàm Ý nghĩa Ví dụ Len (“chuỗi”) Lấy độ dài chuỗi Len(“Tin Hoc Dai Cuong”)= 17 Right (“chuỗi”, n) Lấy n ký tự của chuỗi từ phải qua trái Right(“Visual Basic”,2) = ic Left(“chuỗi”, n) Lấy n ký tự của chuỗi từ trái qua phải Left(“Visual Basic”,5) = Visua Ltrim(“chuỗi”) Xóa các khoảng trắng bên trái chuỗi Ltrim(“ VB 6.0”) = VB 6.0 Rtrim(“chuỗi”) Xóa các khoảng trắng bên phải chuỗi Rtrim(“GTVT ”) = GTVT Trim(“chuỗi”) Xóa các tất cả khoảng trắng của chuỗi Trim(“Tin Hoc Dai Cuong”)= TinHocDaiCuong bangtqh@utc2.edu.vn 6.3. Các toán tử trong VB (tt) Các hàm xử lý chuỗi thông dụng (tt) Tin học đại cương - Chương 6 28 Hàm Ý nghĩa Ví dụ Mid(“chuỗi”, m , n) Lấy n ký tự từ vị trí m Mid(“Lap trinh”, 2,4) =ap t Ucase(“chuỗi”) Chuyển toàn bộ chuỗi thành chữ hoa Ucase(“Lap trinh”) = LAP TRINH Lcase(“chuỗi”) Chuyển toàn bộ chuỗi thành chữ thường Lcase(“Lap trinh”) = lap trinh Chr(charcode) Lấy ký tự từ bảng mã ASCII theo charcode Chr(65)=A Asc(Character) Lấy charcode ASCII của ký tự Asc(“A”)=65 bangtqh@utc2.edu.vn 6.4. Các lệnh thực thi trong VB  Nhóm lệnh không điều khiển • Lệnh gán dữ liệu vào 1 biến • Lệnh gán tham khảo đến đối tượng vào 1 biến  Nhóm lệnh tạo quyết định • Cấu trúc If....Then....Else....End If • Cấu trúc Select Case.....End Select  Nhóm lệnh lặp • Cấu trúc: Do....Loop • Cấu trúc: For....Next • Cấu trúc: For each.....Next  Nhóm lệnh gọi thủ tục – Lệnh gọi thủ tục – Lệnh thoát khỏi cấu trúc điều khiển Exit Tin học đại cương - Chương 6 29 bangtqh@utc2.edu.vn Lệnh gán dữ liệu Là lệnh được dùng nhiều nhất trong chương trình Cú pháp: AVariable = Expr – Biểu thức Expr bên phải sẽ được tính để có 1 giá trị cụ thể (thuộc 1 kiểu cụ thể). Giá trị này sẽ được gán vào vùng nhớ do biến AVariable xác định – Trước khi gán, VB sẽ kiểm tra tính tương thích về kiểu của Avariable và giá trị của biểu thức Expr Ví dụ: DispValue = DispValue + iNegative * d * (10 ^ -bytPosDigit) Tin học đại cương - Chương 6 30 bangtqh@utc2.edu.vn Cấu trúc rẽ nhánh If....Then...Else  Cú pháp 1 If condition Then Statement1 [Else Statement2]  Cú pháp 2 If condition Then [Statement1] + End If  Cú pháp 3 If condition Then [Statement1] + Else [Statement2] + End If Tin học đại cương - Chương 6 31 bangtqh@utc2.edu.vn Cấu trúc rẽ nhánh If....Then...Else (tt) Ví dụ: Đoạn chương trình giải phương trình bậc nhất Tin học đại cương - Chương 6 32 bangtqh@utc2.edu.vn Cấu trúc rẽ nhánh If....Then...Else (tt) Ví dụ 2: – Thiết kế form như hình bên – Cài đặt event Click của command button trên form để giải phương trình bậc 2: ax2 + bx + c = 0 Tin học đại cương - Chương 6 33 bangtqh@utc2.edu.vn Ví dụ 2 – cấu trúc rẽ nhánh If Tin học đại cương - Chương 6 34 bangtqh@utc2.edu.vn Cấu trúc rẽ nhánh (tt) Rẽ nhánh Select Case.... End Select – Cú pháp: Select Case Expr Case [Statement 1]+ Case [Statement 2]+ .............. Case [Statement n]+ [Case Else [Statement n+1]+ ] End Select – Kiểm tra xem giá trị biểu thức Expr trùng với giá trị Vali thì thực hiện Statement i Nếu không tìm được giá trị nào bằng Expr thì thực hiện Statement n+1 Tin học đại cương - Chương 6 35 bangtqh@utc2.edu.vn Cấu trúc rẽ nhánh (tt) Rẽ nhánh Select Case.....End Select (tt) Ví dụ: Tin học đại cương - Chương 6 36 bangtqh@utc2.edu.vn Cấu trúc lặp Vòng lặp Do  Dạng 1: Do While condition ‘Đoạn mã lệnh VB Loop  Dạng 2: Do ‘Đoạn mã lệnh VB Loop While condition  Dạng 3: Do Until condition ‘Đoạn mã lệnh VB Loop  Dạng 4: Do ‘Đoạn mã lệnh VB Loop Until condition Tin học đại cương - Chương 6 37 bangtqh@utc2.edu.vn Ví dụ Tin học đại cương - Chương 6 38 1 2 3 bangtqh@utc2.edu.vn Cấu trúc lặp While. Wend Cú pháp While condition [Statement]+ Wend Công dụng – Tính giá trị của điều kiện condition. Nếu kết quả là True thì các lệnh [Statement]+ được thực hiện. Quá trình này lặp lại cho tới khi điều kiện condition có giá trị là False Tin học đại cương - Chương 6 39 bangtqh@utc2.edu.vn Cấu trúc lặp For.Next Cú pháp 1 For counter = start To end [Step increment] [Statement]+ Next [counter] Ví dụ: giaithua = 1 For i = 1 To 10 giaithua = giaithua * i Next Công dụng: – Lặp thực hiện lệnh cho tới khi counter tăng quá end. Giá trị khởi dầu của counter là start. Bước tăng của counter là increment sau mỗi lần lặp Tin học đại cương - Chương 6 40 bangtqh@utc2.edu.vn Cấu trúc lặp For.Next (tt) Cú pháp 2 For Each element In group [Statement]+ Next [element] Ví dụ: Dim dayso(10) As Integer ‘khai báo 1 mảng 10 phần tử i = 0 For Each ai In dayso MsgBox (“So thu ” & i & “= ” & ai) Next ai Tin học đại cương - Chương 6 41 bangtqh@utc2.edu.vn Lặp For lồng nhau  Với các lệnh [statement]+ bất kỳ trong cú pháp lặp ở trên, ta có thể thay thế nó thành một cấu trúc lặp For khác  ta được cấu trúc For lồng nhau  Ví dụ: Tính tổng 2 ma trận A, B Dim A(3, 3) As Integer ‘khai báo ma trận A Dim B(3, 3) As Integer ‘khai báo ma trận B Dim C(3, 3) As Integer ‘khai báo ma trận C For i = 1 To 3 Step 1 ‘duyệt theo hàng For j = 1 To 3 Step 1 ‘duyệt theo cột C(i, j) = A(i, j) + B(i, j) Next j Next i Tin học đại cương - Chương 6 42 bangtqh@utc2.edu.vn Thoát đột ngột khỏi vòng lặp Mặc định trong VB, các lệnh [Statement]+ sẽ được thực thi cho tới hết vòng lặp (khi điều kiện lặp là False). Tuy nhiên, trong 1 vài trường hợp đặc biệt, việc lặp hết tất cả các lần lặp là không cần thiết. – Ví dụ: kiểm tra xem phần tử x có thuộc trong dãy a1, a2,,aN không? Rõ ràng trong quá trình kiểm tra tuần tự các phần tử ai, nếu xảy ra x = ai thì không cần kiểm tra tiêp ai+1  ta cần thoát đột ngột khi vòng lặp chưa kết thúc. Cú pháp: Exit [For | Do | Sub | Function ] VB không cho phép sử dụng Exit để thoát khỏi vòng lặp While.Wend Tin học đại cương - Chương 6 43 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB IDE Bugs là những lỗi của program mà ta phát hiện khi chạy nó. Debug là công việc loại tất cả những lỗi trong chương trình để nó chạy tốt trong mọi hoàn cảnh. Có 2 loại Bug thường gặp – Program không làm đúng yêu cầu cần phải có của đề bàiPhải tìm hiểu kỹ yêu cầu của đề bài, phân tích rõ input và output của bài toán – Program không thực hiện đúng ý programmer muốn. Tức là programmer dự định một đàng mà kết quả chương trình ra một ngã  vô tình viết code không đúng cách Trường hợp này phải dùng các Tool gỡ lỗi (Debug Tool) có sẵn trong IDE của VB Tin học đại cương - Chương 6 44 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt)  Một số thủ thuật tránh gặp bug – Đặt tên biến, hằng, hàm, đối tượng một cách gợi nhớ – Viết code theo cấu trúc khối (thụt đầu dòng theo phân cấp) – Sử dụng chú thích (Comment) – Xây dựng các hàm (function) hoặc thủ tục (procedure) để dễ dàng xác định vị trí gặp bug hoặc dễ dàng nâng cấp, chỉnh sửa chương trình – Khai báo biến, hằng trước khi truy xuất (mặc dù VB không bắt buộc phải khai báo biến) – Đừng sợ Error: Chả có lập trình viên nào không gặp error khi viết chương trình. Hãy bình tĩnh đọc cái Error Message (thông báo lỗi) để xem máy muốn nói gì. Tin học đại cương - Chương 6 45 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Xử lý Error lúc Runtime – Một chương trình EXE viết bằng VB6 đang chạy, nếu gặp Error, nó sẽ hiển thị một Error Dialog cho biết lý do vắn tắt  Sau khi bạn click OK, chương trình sẽ ngưng. – Nếu bạn chạy chương trình trong VB6 IDE, ta có dịp bảo program ngừng ở trong source code chỗ có Error bằng cách bấm button Debug trong Error Dialog. Tiếp theo đó bạn có thể tìm hiểu trị số các biến để đoán nguyên do của Error Tin học đại cương - Chương 6 46 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Dùng Breakpoints – Cách hay nhất để theo dõi quá trình thực thi của program là dùng Breakpoint để làm cho program ngừng lại ở một chỗ ta muốn ở trong code, rồi sau đó ta cho program bước từng bước. – Chỉ cần click chuột lên lề trái trong cửa sổ code để đặt Breakpoint dạng dấu chấm đỏ. Nhấ F9 để loại bỏ breakpoint nếu muốn Tin học đại cương - Chương 6 47 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Lúc program đang dừng lại, ta có thể xem trị số của một variable bằng cách để chuột lên trên variable ấy, tooltip sẽ hiên ra như trong hình dưới đây: Tin học đại cương - Chương 6 48 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Khi program đang tạm ngưng, bạn có thể thực thi từng hàng code bằng cách bấm F8. Menu command tương đương với nó là Debug | Step Into. Nếu không muốn program bước vào bên trong một Sub/Function mà muốn việc thực hiện một Sub/Function như một bước đơn giản bạn dùng Menu command Debug | Step Over hay phím tắt Shift-F8. Để cho program chạy lại bạn bấm F5, tương đương với Menu command Run | Continue Tin học đại cương - Chương 6 49 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Để tiện việc debug, bạn có thể dùng Debug Toolbar bằng cách hiển thị nó với Menu command View | Toolbars | Debug Tin học đại cương - Chương 6 50 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Debug Toolbar Tin học đại cương - Chương 6 51 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt) Dùng Immediate Window – Cho phép ta execute những statement strong khi program đang dừng lại. Ta có thể dùng một Print statement để hiển thị trị số của một variable hay kết quả của một Function, gọi một Sub hay thay đổi trị số một variable trước khi tiếp tục cho chương trình chạy lại. – Để hiển thị Immediate Window, dùng Menu command View | Immediate Window Tin học đại cương - Chương 6 52 bangtqh@utc2.edu.vn 6.5. Gỡ lỗi (Debug) trong VB (tt)  Dùng Watch Window – Đôi khi bạn muốn program ngừng không phải ở một chỗ nào nhất định, nhưng khi trị số của một variable hay của một expression là bao nhiêu, có thể là bạn không biết tại sao một variable tự nhiên có một trị số như vậy. Câu hỏi: Ai là thủ phạm? – Bạn có thể dùng Menu command Debug | Add Watch để thêm tên variable hoặc expression cần theo dõi Tin học đại cương - Chương 6 53 bangtqh@utc2.edu.vn 6.6. Các Dialog thông dụng Message Box  Input Box Common Dialogs Custom Dialogs Tin học đại cương - Chương 6 54 bangtqh@utc2.edu.vn Message Box Tin học đại cương - Chương 6 55 bangtqh@utc2.edu.vn Input Box Với Message Boxes, user chỉ có thể click lên một button. Đôi khi ta muốn user đánh vào thêm một ít dữ kiện, trong trường hợp ấy ta có thể dùng Input Boxes. Tin học đại cương - Chương 6 56 bangtqh@utc2.edu.vn Input Box (tt)  Input Box có hai dạng Functions: – InputBox$ - returns một String đàng hoàng – InputBox - returns một String nằm trong biến Variant Tin học đại cương - Chương 6 57 bangtqh@utc2.edu.vn Input Box (tt) Mặc dầu Input Boxes rất dễ dùng, trên thực tế rất ít khi ta dùng nó vì những lý do sau đây: – Trong lúc user input data, phải đợi sau khi user click OK thì mới bắt đầu xử lý input textstring. Nếu dùng một Textbox trong một Form thông thường, ta có thể code trong các Event handlers của Events KeyPress hay Change để kiểm soát các keystrokes của user. – Input Boxes chỉ cho nhập vào một text string duy nhất. – Input Boxes xem không đẹp mắt. Program dùng Input Boxes có vẻ như không chuyên nghiệp, do đó ta cần phải dùng Custom Dialogs. Tin học đại cương - Chương 6 58 bangtqh@utc2.edu.vn 6.6. Các Dialog thông dụng (tt)  Common Dialogs – Muốn dùng các Dialogs ấy trong VB6 ta phải reference Comdlg32.ocx bằng IDE Menu command Project | Components... rồi chọn và Apply Microsoft Common Dialog Control 6.0. Tin học đại cương - Chương 6 59 bangtqh@utc2.edu.vn Common Dialogs Tin học đại cương - Chương 6 60 Microsoft Common Dialog Control 6.0 cho ta 6 dạng Dialog tùy theo gọi method nào (như bản dưới) Tên Method Open File ShowOpen Save File ShowSave Color ShowColor Font ShowFont Print ShowPrinter Help ShowHelp bangtqh@utc2.edu.vn Ví dụ về OpenFile Dialog Bạn hãy mở một Project mới với một button tên CmdOpen trong Form1 và đánh vào code trên sự kiện CmdOpen_Click Tin học đại cương - Chương 6 61 bangtqh@utc2.edu.vn Ví dụ về OpenFile Dialog (tt) Kết quả khi click button CmdOpen Tin học đại cương - Chương 6 62 bangtqh@utc2.edu.vn Ví dụ về Color Dialog Bạn hãy thêm một button tên CmdColor trong Form1 và đánh vào code trên sự kiện CmdColor_Click Tin học đại cương - Chương 6 63 bangtqh@utc2.edu.vn Ví dụ về Color Dialog (tt) Kết quả khi click button CmdColor Tin học đại cương - Chương 6 64 bangtqh@utc2.edu.vn Ví dụ về Font Dialog  Bạn hãy mở một Project mới với một button tên CmdSelectFont và 1 Label tên Label1 trong Form1 và đánh vào code trên sự kiện CmdSelectFont _Click Tin học đại cương - Chương 6 65 bangtqh@utc2.edu.vn Ví dụ về Font Dialog (tt) Tin học đại cương - Chương 6 66 bangtqh@utc2.edu.vn Ví dụ về Print Dialog Bạn hãy thêm một button tên CmdSelectPrinter trong Form1 và đánh vào code trên sự kiện CmdSelectPrinter_Click Tin học đại cương - Chương 6 67 bangtqh@utc2.edu.vn Ví dụ về Print Dialog (tt) Tin học đại cương - Chương 6 68 bangtqh@utc2.edu.vn Tin học đại cương - Chương 6 69 bangtqh@utc2.edu.vn Thực hành chương 6 Thiết kế Form với các Control thông dụng bangtqh@utc2.edu.vn LAB 03 Sử dụng IDE của VB6.0 thiết kế form dưới đây Viết mã lệnh ứng với event Click của Command Button trên form sao cho giá trị trong textbox kết quả là kết quả thực hiện phép toán tương ứng giữa A và B Tin học đại cương - Chương 6 71

Các file đính kèm theo tài liệu này:

  • pdfch6_6384.pdf