visual basic chapter 8 ppt

6 320 0
visual basic chapter 8 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

CHƯƠNG 8 XỬ LÝ PHÍM 1) Khái niệm Khi người dùng nhấn một phím trong một cửa sổ đang có focus, luôn sinh ra ba biến cố là biến cố KeyDown, KeyUp, và KeyPress. → Khi một phím được nhấn, thì hệ thống xảy ra biến cố đầu tiên là KeyDown. → Nếu phím được nhấn là một phím ký tự bình thường, thì hệ thống sinh ra tiếp biến cố KeyPress → Khi thả phím ra, sẽ sinh ra biến cố KeyUp. Bạn có thể viết thủ tục xử lý cho các biến cố này. Thường là xử lý việc nhập chuỗi cho textbox. 2) Các biến cố 2.1) Biến cố KeyDown 2.2) Biến cố KeyUp Các thủ tục xử lý cho hai sự kiện Keydown và KeyUp có dạng sau Private Sub KeyDown (keycode As Integer, shift As Integer) Private Sub KeyUp (keycode As Integer, shift As Integer) Trong đó: Keycode Là mã của phím được nhấn. Mã này không phải là mã ASCII của ký tự. → Nhiều phím trên bàn phím có thể dùng để gõ hai ký tự khác nhau: chẳng hạn như chữ cái có thể là chữ hoa hoặc chữ thường, hoặc phím số 1 dùng để gõ số 1 hay kí tự ! ….còn keycode ở đây là một mã duy nhất cho từng phím. → Ví dụ bạn nhận được keycode của phím A ,bạn biết phím A được nhấn nhưng bạn không biết là A thường hay A hoa. Muốn xét xem A thường hay A hoa, bạn phải xét trạng thái của phím CAPSLOCK và phím SHIFT hiện thời. Chính vì vậy, với những phím ký tự cần có thêm sự kiện Keypress để chúng ta xét các kí tự này. Shift Tham số này cho chúng ta biết trạng thái của các phím Shift , Ctrl, Alt khi phím được nhấn. Bạn xét trạng thái của phím đó thông qua các hằng : Hằng Giá trò Ý nghóa VbShiftMask 1 Phím SHIFT VbCtrlMask 2 Phím CTRL VbATLMask 4 Phím ALT Giống như trước đây khi xét trong sự kiện MouseMove, khi một phím được nhấn có thể lúc đó phím Shift cũng được nhấn, hay phím Ctrl được nhấn hoặc có thể hai phím Shift, Ctrl đều nhấn.Vì vậy để xét xem phím nào có nhấn bạn dùng phép toán And để xét. Ví dụ: If Shift And vbShiftMask <> 0 Then ‘nếu có nhấn phím Shift thì ……  Để xét Keycode trong sự kiện KeyDown và KeyUp bạn dùng các hằng sau : Hằng Giá trò Tương ứng các phím VbKeyBack 8 Phím BackSpace ∼1∼ VbKeyTab 9 Phím Tab VbKeyReturn 13 Phím Enter VbKeyShift 16 Phím Shift VbKeyControl 17 Phím Ctrl VbKeyMenu 18 Phím Alt VbKeyPause 19 Phím Pause VbKeyCapital 20 Phím CAPSLOCK VbKeyEscape 27 Phím ESC VbKeySpace 32 Phím Spacebar VbKeyPageUp 33 Phím Page Up VbKeyPageDown 34 Phím Page Down VbKeyEnd 35 Phím End VbKeyHome 36 Phím Home VbKeyLeft 37 Phím mũi tên sang trái VbKeyUp 38 Phím mũi tên đi lên VbKeyRight 39 Phím mũi tên sang phải VbKeyDown 40 Phím mũi tên đi xuống VbKeyPrint 42 Phím Print Screan VbKeyInsert 45 Phím Insert VbKeydelete 46 Phím Delete VbKeyNumlock 144 Phím Numlock Các mã tương ứng với các phím kí tự : Hằng Giá trò Tương ứng với phím VbKeyA 65 Phím A VbKeyB 66 Phím B VbKeyC 67 Phím C VbKeyD 68 Phím D VbKeyE 69 Phím E VbKeyF 70 Phím F VbKeyG 71 Phím G VbKeyH 72 Phím H VbKeyI 73 Phím I VbKeyJ 74 Phím J VbKeyK 75 Phím K ∼2∼ VbKeyL 76 Phím L VbKeyM 77 Phím M VbKeyN 78 Phím N VbKeyO 79 Phím O VbKeyP 80 Phím P VbKeyQ 81 Phím Q VbKey R 82 Phím R VbKey S 83 Phím S VbKey T 84 Phím T VbKey U 85 Phím U VbKey V 86 Phím V VbKey W 87 Phím W VbKey X 88 Phím X VbKey Y 89 Phím Y VbKey Z 90 Phím Z Mã của cacù phím từ 0 đến 9: Hằng Giá trò Tương ứng với phím VbKey 0 48 Phím số 0 VbKey 1 49 Phím số 1 VbKey 2 50 Phím số 2 VbKey 3 51 Phím số 3 VbKey 4 52 Phím số 4 VbKey 5 53 Phím số 5 VbKey 6 54 Phím số 6 VbKey 7 55 Phím số 7 VbKey 8 56 Phím số 8 VbKey 9 57 Phím số 9 Mã của các phím số nằm trên phần keypad (NumLock) Hằng Giá trò tương ứng với phím VbKeyNumpad 0 96 Phím số 0 VbKeyNumpad 1 97 Phím số 1 VbKeyNumpad 2 98 Phím số 2 VbKeyNumpad 3 99 Phím số 3 ∼3∼ VbKeyNumpad 4 100 Phím số 4 VbKeyNumpad 5 101 Phím số 5 VbKeyNumpad 6 102 Phím số 6 VbKeyNumpad 7 103 Phím số 7 VbKeyNumpad 8 104 Phím số 8 VbKeyNumpad 9 105 Phím số 9 VbKey Multily 106 Phím dấu * VbKey Add 107 Phím dấu + VbKey Separator 108 Phím Enter VbKey Subtract 109 Phím dấu VbKey Decimal 110 Phím dấu VbKey Divide 111 Phím dấu / Mã của phím chức năng: Hằng Giá trò Tương ứng với phím VbKey F1 112 Phím F1 VbKey F2 113 Phím F2 VbKey F3 114 Phím F3 VbKey F4 115 Phím F4 VbKey F5 116 Phím F5 VbKey F6 117 Phím F6 VbKey F7 118 Phím F7 VbKey F8 119 Phím F8 VbKey F9 120 Phím F9 VbKey F10 121 Phím F10 VbKey F11 122 Phím F11 VbKey F12 123 Phím F12 2.3) Biến cố KeyPress Như được nói ở trên, biến cố này xảy ra khi nhấn các phím ký tự ( tức những phím có mặt trong bảng mã ASCII chứ không phải chỉ những ký tự từ A đến Z). Thủ tục xử lý sự kiện này có dạng: Private Sub KeyPress ( KeyAscii As Integer ) KeyAscii : Chính là mã ASCII của phím ký tự vừa được nhấn.  Nếu lúc xử lý biến cố này bạn gán lại giá trò mới cho KeyAscii cũng có nghóa là bạn sửa phím được nhấn trong đối tượng. ∼4∼ Ví du 1ï : giả sử bạn muốn các ký tự được gõ trong một TextBox luôn luôn là chữ hoa cho dù người dùng gõ chữ thường vào trong nó, bạn có thể xử lý sự kiện KeyPress của TextBox như thế này: Private Sub Text1_KeyPress ( KeyAscii As Integer ) Dim Kytu As Integer Kytu = Chr(KeyAscii) 'Đổi mã ASCII sang ký tự tương ứng Kytu = UCase(Kytu) 'Đổi ký tự sang chữ hoa KeyAscii = Asc(Kytu) 'Gán lại mã phím mới End Sub Ví dụ 2 : giả sử bạn muốn TextBox chỉ nhận những ký tự số từ 0 đến 9 ( có mã từ 48 đến 57) bạn xử lý biến cố KeyPress của nó như sau: Private Sub Text1_KeyPress ( KeyAscii As Integer ) If (KeyAscii < 48) Or (KeyAscii > 57) Then 'Nếu ký tự không phải từ 0 đến 9 (nằm ngoài khoảng từ 48 đến 57) KeyAscii = 0 'Gán bằng 0 tức xóa phím End If End Sub 3) Hàm lấy số ngẫu nhiên RND Trong chương trình đôi khi bạn muốn lấy một con số ngẫu nhiên nào đó, nhất là trong chương trình trò chơi, bạn sẽ dùng các hàm ngẫu nhiên này.  Hàm Rnd Dùng để phát ra một con số ngẫu nhiên bất kỳ. Giá trò trả về là một số thực (single) luôn luôn lớn hơn hoặc bằng 0 và nhỏ hơn 1. Như vậy muốn lấy một số ngẫu nhiên trong khoảng từ A đến B bạn dùng công thức tính: Số = Int ( A + B * Rnd ) Ví dụ: Bạn có một Form, trên form có một đối tượng Timer tên là Time1. Bạn muốn rằng mỗi khi biến cố thời gian xảy ra, chương trình sẽ vẽ ngẫu nhiên một điểm bất kỳ trên formvới một màu sắc cũng ngẫu nhiên, bạn sẽ viết lệnh cho biến cố thời gian như sau: Private Sub Timer1_Timer() DrawWidth = 3 'Đặt độ lớn của điểm là 3 X = Int ( ScaleWidth * Rnd ) 'Lấy một số ngẫu nhiên nhỏ hơn bề rộng form Y = Int ( ScaleHeight * Rnd ) 'Lấy một số ngẫu nhiên nhỏ hơn bề cao của form Color = QBColor ( Int (1 6 * Rnd ) ) ‘chọn màu sắc ngẫu nhiên PSet (X, Y), Color 'Vẽ điểm trên form End Sub Tóm tắt Chương 8 1. Khi nhấn phím, thường sinh ra 3 biến cố KeyDown, KeyPress, KeyUp ∼5∼ Các thủ tục xử lý các biến cố trên có dạng: Private Sub KeyDown (keycode As Integer, shift As Integer) Private Sub KeyUp (keycode As Integer, shift As Integer) Private Sub KeyPress ( KeyAscii As Integer ) 2. Hàm Rnd dùng lấy số ngẫu nhiên ∼6∼ . 79 Phím O VbKeyP 80 Phím P VbKeyQ 81 Phím Q VbKey R 82 Phím R VbKey S 83 Phím S VbKey T 84 Phím T VbKey U 85 Phím U VbKey V 86 Phím V VbKey W 87 Phím W VbKey X 88 Phím X VbKey Y 89 Phím Y VbKey. phím VbKey 0 48 Phím số 0 VbKey 1 49 Phím số 1 VbKey 2 50 Phím số 2 VbKey 3 51 Phím số 3 VbKey 4 52 Phím số 4 VbKey 5 53 Phím số 5 VbKey 6 54 Phím số 6 VbKey 7 55 Phím số 7 VbKey 8 56 Phím số 8 VbKey. 1 VbKeyNumpad 2 98 Phím số 2 VbKeyNumpad 3 99 Phím số 3 ∼3∼ VbKeyNumpad 4 100 Phím số 4 VbKeyNumpad 5 101 Phím số 5 VbKeyNumpad 6 102 Phím số 6 VbKeyNumpad 7 103 Phím số 7 VbKeyNumpad 8 104 Phím số 8 VbKeyNumpad

Ngày đăng: 25/07/2014, 13:21

Tài liệu cùng người dùng

Tài liệu liên quan