1. Trang chủ
  2. » Thể loại khác

visual basic chapter 8 ppt

6 321 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 172 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG 8 XỬ LÝ PHÍM1 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.. → Nếu phím được nhấn là một p

Trang 1

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

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

Trang 2

VbKeyTab 9 Phím Tab

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

Trang 3

VbKeyL 76 Phím L

Mã của cacù phím từ 0 đến 9:

Hằng Giá trị Tương ứng với phím

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

Trang 4

VbKeyNumpad 4 100 Phím số 4

Mã của phím chức năng:

Hằng Giá trị Tương ứng với phím

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

Trang 5

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

Trang 6

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

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w