5.7Gỡ rối chương trình
Không một chương tình nào là không có lỗi. Tuy nhiên, giảm khả năng lỗi đến mức tối thiểu là có thể làm được. Để có chương trình tốt, ta cần có thiết kế chặt chẽ. Sau đó, chương trình phải được viết sao cho có ít sinh lỗi và nếu có thì dễ tìm.
5.7.1Một số giải pháp giảm lỗi -
Thiết kế cẩn thận, ghi ra các vấn đề quan trọng và cách giải quyết cho từng phần. Ghi ra từng thủ tục và mục đích của nó.
-
Chú thích rõ ràng trong chương trình
-
Đối tượng có tham chiếu tường minh thay vì kiểu chung chung như Object, Control
-
Tuân thủ Coding convention
-
Một tỏng những nguyên nhân gây lỗi là gõ sai tên biến hoặc nhầm lẫn điều khiển. Dùng Option Explicit để tránh trường hợp này.
Truyền giá trị khi gọi thủ tục
Là một trong những cách giảm thiểu khả năng lỗi. Tuy nhiên, trở ngại duy nhất của nó là tiêu tốn nhiêềuvùng nhớ hơn truyền địa chỉ, làm chương tình chạy chậm hơn.
Đối tượng Err
Là đối tượng do Visual basic cung cấp sẵn. Nó có vô số thuộc tính. Sau đây là những thuộc tính thông dụng:
-
Thuộc tính
|
Giải thích
|
Number
|
Giá trị mặc định, số hiệu lỗi
|
Description
|
Mô tả lỗi
|
Source
|
Tên đối tượng gây ra lỗi
| 5.7.2Gỡ rối
Có thể tạm dừng chương trình bằng cách chọn Break từ menu Run hoặc nhấn trên thanh công cụ, hoặc nhấn trên tổ hợp phím Ctrl-Break. Ta cũng có thể đặt dòng lệnh Stop trong chương trình nhưng sẽ có cách khác tốt hơn.
Cửa sổ Immediate
Cửa sổ này cho phép ta xem các giá trị của các biến trong form khi ta chỵ gỡ rối
Cửa sổ Watch
Hiển thị các giá trị của một biến, thuộc tính hay biểu thức bất kỳ. Thậm chí có thể buộc chương trình tạm ngưng sau một số lần lặp.
Đi qua từng dòng chương trình
Thanh Debug
Thứ tự nút bấm từ trái sang phải như sau:
-
Start: thi hành chương trình
-
Break: tạm dừng chương trình
-
End: Kết thúc chương trình
-
BreakPoint: Điểm đánh dấu dòng lệnh để tạm dừng chương trình. Nút này được sử dụng để bật tắt chế độ breakpoint. Khi có lỗi xảy ra và ta chưa khoanh được khu vực nghi ngờ, thì Breakpoint là giải pháp tốt nhất để cô lập vùng chương trình bị lỗi.
-
Step Into: Nếu dòng lệnh hiện hành đang gọi một thủ tục, nhấn F8 sẽ nhảy vào bên trong thủ tục.
-
Step Over: Nếu dòng lệnh hiện hành đang gọi một thủ tục, nhấn Shipt-F8 sẽ chạy qua thủ tục.
-
Step Out: Nếu điểm dừng đang ở trong một thủ tục, nhấn Ctrl-Shift-F8 sẽ chạy hết thủ tục và dừng ở dòng kế tiếp sau lệnh gọi thủ tục
-
......
5.8Bẫy lỗi
Lệnh On Error dùng trong hàm hay thủ tục báo cho Visual basic biết cách xử ký khi lỗi xảy ra.
On Error GoTo
Dùng On error Goto 0 tắt xử lý lỗi.
5.8.2Kết thúc bẫy lỗi
6Lập trình xử lý giao diện 6.1Menu
Có 2 loại menu:
-
Menu thả xuống(Drop-down menu): là dạng menu thông dụng nhất.
-
Menu bật ra (Popup menu): Thường hiển thị khi ta nhấn nút phải chuột
Menu cũng là một loại điều khiển, nhưng windows sẽ kiểm soát việc vẽ menu. Lập trình viên chỉ quản lý phần xử lý các sự kiện mà thôi.
Menu không chứa trong hộp công cụ như những điều khiển khác, mà được thiết kế bằng trình soạn thảo menu. Từ menu tools, chọn Menu editor để mở rộng chương trình này hoặc dùng Ctrl + E hoặc nhấn biểu tượng trong menu của Visual basic
Chú ý nếu chưa có biểu mẫu thì biểu tượng này không xuất hiện trên thanh công cụ.
Thuộc tính của menu không chứa trong cửa sổ thuộc tính như các điều khiển khác mà đặt trong trình soạn thảo menu.
Thuộc tính caption: Là chuỗi ký tự hiển thị trên menu.
Thuộc tính name: Phải được đặt duy nhất và dễ nhớ. Có 2 cách đặt tên:
-
Nhóm các mục có cùng cha trên menu vào chung một dãy các điều khiển và dùng chung một tên. Cách này được Visual basic hết sức khuyến khích.
-
Mỗi mục có một tên riêng, nhưng nên bắt đầu bằng mnu. ví dụ mnuFile
Thuộc tính index: Dùng với dãy các điều khiển menu. Trong đó, vì có nhiều mục cùng tên nên index được dùng cho phân biệt giữa chúng với nhau.
Thuộc tính shortcut: Người sử dụng có thể nhấn chuột để chọn menu theo cách bình thường, hoặc dùng phím tắt. VD: nhấn Ctrl+C thay vì chọn Copy.
Thuộc tính Windows list: dùng trong các ứng dụng MDI. Đây là những ứng dụng có một biểu mẫu chính và nhiều biểu mẫu con. Thuộc tính windowsList ra lệnh cho Visual basic hiển thị tiêu đề của các cửa sổ con trên menu.
Thuộc tính Checked: Nếu chọn thuộc tính này, trên menu sẽ hiển thị một dấu bên cạnh. Tuy nhiên, thuộc tính này không được gán cho những mục menu đang chứa menu con.
Thuộc tính enable: Nếu thuộc tính này không được chọn người sử dụng không thể chọn và đó được.
Thuộc tính Visible: Nếu thuộc tính này không được chọn mục này sẽ biến mất khỏi màn hình.
Thuộc tính NegotiatePosition: Quản lý vị trí gắn menu trong trường hợp sử dụng các đối tượng ActivateX.
Tách nhóm menu: Nếu menu có khá nhiều mục, tốt nhất ta nên chia chúng thành nhiều nhóm nhỏ.
Để lập trình cho menu, ta mở cửa sổ thiết kế biểu mẫu và nhấn chuột lên mục mà ta muốn xử lý.
6.1.2.1Pop-up menu
Ví dụ mẫu - tạo pop-up menu
Bạn tạo ra một menu file có Open, Save, Save as...
Mở cửa sổ code, trong sự kiện mouseUp của biểu mẫu, đưa vào dòng lệnh
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
PopupMenu mnuFile, vbPopupMenuLeftAlign
End If
End Sub
Tắt thuộc tính Visible của menu file.
Chạy chương trình, khi ta nhấn chuột một menu pop-up sẽ hiện thị.
Mảng điều khiển
Là một mảng với các phần tử là những điều khiển. Lần đầu bạn gặp mảng điều khiển là khi bạn copy điều khiển trên biểu mẫu. Visual basic sẽ hỏi:
Nếu ta dán một điều khiển trùng tên với một điều khiển khác, lable1 chẳng hạn, đã có sẵn, Visual basic cho rằng ta muốn tạo mảng điều khiển. Nếu nhấn Yes, VB sẽ đặt tên cho mảng lable1, và thuộc tính index lần lượt là 0 và 1. Nếu thêm một điều khiển nữa, Visual basic tự đông tăng index. Nó không nhắc lại vì ta đã có mảng điều khiển. Mặc dù trùng tên nhưng ta có thể xác định các phần tử một cách dễ dàng nhờ thuộc tính index mà Visual basic tạo cho nó.
Chia sẻ với bạn bè của bạn: |