Bài giảng Hướng dẫn lập trình VB.NET - Chương 7: Sử dụng phát biểu lặp và bộ định thời (TIMER) - Phạm Đức Lập

Nội dung thảo luận:

- Sử dụng vòng lặp For Next

- Hiển thị kết xuất trong ô TextBox nhiều dòng bằng phép nối chuỗi

- Sử dụng lệnh Do Loop

- Sử dụng đối tượng định thời Timer để thực thi mã lệnh tại một thời điểm

- Tạo chương trình đồng hồ số và công cụ đặt mật khẩu định thời

1. Vòng lặp For Next

Vòng lặp này cho phép bạn thực thi lặp lại một nhóm hay nhiều lệnh trong một số lần nhất

đinh.

Cú pháp:

For bien = batdau To ketthuc

Khối lệnh gọi thực thi

Next

Ví dụ:

For i = 1 to 4

Beep()

Next i

Đoạn mã trên đây sẽ phát ra bốn tiếng bíp bằng một vòng lặp for thay vì viết bốn hàm

beep().

1.1. Hiển thị biến đếm của lệnh FOR trong điều khiển TEXTBOX

Biến đếm của vòng lặp FOR cũng như nhiều biến khác. Ta có thể sử dụng nó để gán hay

hiển thị. Ví dụ MyForLoop sau đây sẽ hiển thị giá trị của biến đếm trong một ô texbox.

Textbox này không chỉ có một dòng mà sẽ có nhiều dòng nhờ thay đổi thuộc tính

MultiLine thành TRUE. Bạn cũng có thể tạo thanh cuộn đứng cho textbox bằng cách tạo

thuộc tính ScrollsBar thành VERTICAL.

Tìm hiểu chương trình:

Chương trình khá đơn giản thế này: Chương trình có một ô textbox được thiết kế ở chế độ

nhiều dòng và một nút.

Khi người dùng click vào nút trên thì chương trình thực hiện vòng lặp for và điền thông tin

“dòng thứ” cùng với chỉ số biến đếm i từng dòng một

pdf 9 trang yennguyen 4680
Bạn đang xem tài liệu "Bài giảng Hướng dẫn lập trình VB.NET - Chương 7: Sử dụng phát biểu lặp và bộ định thời (TIMER) - Phạm Đức Lập", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hướng dẫn lập trình VB.NET - Chương 7: Sử dụng phát biểu lặp và bộ định thời (TIMER) - Phạm Đức Lập

Bài giảng Hướng dẫn lập trình VB.NET - Chương 7: Sử dụng phát biểu lặp và bộ định thời (TIMER) - Phạm Đức Lập
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 1 - Add: cnt-44-dh, VIMARU 
Chương 7: 
Sử dụng phát biểu lặp và bộ định thời (TIMER) 
--------oOo-------- 
Nội dung thảo luận: 
 - Sử dụng vòng lặp For  Next 
 - Hiển thị kết xuất trong ô TextBox nhiều dòng bằng phép nối chuỗi 
 - Sử dụng lệnh Do  Loop 
 - Sử dụng đối tượng định thời Timer để thực thi mã lệnh tại một thời điểm 
 - Tạo chương trình đồng hồ số và công cụ đặt mật khẩu định thời 
1. Vòng lặp ForNext 
Vòng lặp này cho phép bạn thực thi lặp lại một nhóm hay nhiều lệnh trong một số lần nhất 
đinh. 
Cú pháp: 
 For bien = batdau To ketthuc 
 Khối lệnh gọi thực thi 
 Next 
Ví dụ: 
 For i = 1 to 4 
 Beep() 
 Next i 
Đoạn mã trên đây sẽ phát ra bốn tiếng bíp bằng một vòng lặp for thay vì viết bốn hàm 
beep(). 
1.1. Hiển thị biến đếm của lệnh FOR trong điều khiển TEXTBOX 
Biến đếm của vòng lặp FOR cũng như nhiều biến khác. Ta có thể sử dụng nó để gán hay 
hiển thị. Ví dụ MyForLoop sau đây sẽ hiển thị giá trị của biến đếm trong một ô texbox. 
Textbox này không chỉ có một dòng mà sẽ có nhiều dòng nhờ thay đổi thuộc tính 
MultiLine thành TRUE. Bạn cũng có thể tạo thanh cuộn đứng cho textbox bằng cách tạo 
thuộc tính ScrollsBar thành VERTICAL. 
Tìm hiểu chương trình: 
Chương trình khá đơn giản thế này: Chương trình có một ô textbox được thiết kế ở chế độ 
nhiều dòng và một nút. 
Khi người dùng click vào nút trên thì chương trình thực hiện vòng lặp for và điền thông tin 
“dòng thứ” cùng với chỉ số biến đếm i từng dòng một. 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 2 - Add: cnt-44-dh, VIMARU 
Thiết kế giao diện: 
Bạn tạo mới một giải pháp và add một dự án có cùng tên là MyForLoop. 
Thiết kế giao diện như sau: 
Đặt các thuộc tính cho đối tượng: Texbox1: Name – txtline, MultiLine – TRUE, ScrollsBar 
– VERTICAL. Button1: Name – btnloop, Text – “Lặp” 
Viết mã: 
Bạn tạo thủ tục btnloop_Click bằng cách double click vào nút “lặp” trên form và nhập 
vào đoạn mã sau: 
 Dim i As Integer 
 Dim ch As String 
 ch = Chr(13) & Chr(10) 
 txtline.Text = "" 
 For i = 1 To 23 
 txtline.Text = txtline.Text & "Dòng thứ " & i & ch 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 3 - Add: cnt-44-dh, VIMARU 
 Next 
Tìm hiểu mã: 
Chương trình khai báo hai biến: i kiểu số nguyên làm biến đếm cho vòng lặp for và ch kiểu 
xâu chuỗi – String, biến ch được gán giá trị 13 – canh lề và 10 – dòng mới. 
Hàm Chr() giúp đổi số thành mã ASCII của một ký tự. 
Chạy chương trình: 
Bạn hãy chạy chương trình để xem vòng lặp FOR hoạt động như thế nào. 
Nâng cao: 
Bạn có thể tạo biến đếm của vòng lặp FOR kiểu khác, ví dụ DOUBLE như sau: 
 Dim i As Double 
 Dim ch As String 
 ch = Chr(13) & Chr(10) 
 txtline.Text = "" 
 For i = 1 To 23 Step 0.5 
 txtline.Text = txtline.Text & "Dòng thứ " & i & ch 
 Next 
Kết quả: 
Trong đó Step 0.5 là bước nhảy của biến đếm. 
1.2. Tạo vòng lặp FORNEXT phức tạp hơn 
Ví dụ sau đây sẽ minh họa việc sử dụng biến đếm để tạo tên file, mở và hiển thị các file 
.ICO chứa trên đĩa cứng. Chúng ta có thể chỉ dẫn nơi chứa các file .ICO nào chúng ta 
muốn, ở đây ta dùng các file sẵn có trong thư mục: Icos đã sao chép vào bên trong dự án. 
Tìm hiểu chương trình: 
Chương trình có một điều khiển PictureBox để hiển thị các ảnh ICO và một nút cho phép 
người dùng click. Khi người dùng click thì vòng lặp FOR bắt đầu. Nó sẽ duyệt tất cả các 
ảnh và hiển thị ảnh đó vào trong khung ảnh. 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 4 - Add: cnt-44-dh, VIMARU 
Thiết kế giao diện: 
Bạn tạo mới một giải pháp và thêm vào một dự án cùng tên là MyLoop_Advanced đồng 
thời thiết kế giao diện như hình: 
Trong đó thuộc tính Name của các đối tượng như sau: PictureBox1 – ptbBieutuong, 
Button1 – btnhienbieutuong. 
Viết mã: 
Tạo thủ tục btnhienbieutuong_Click bằng cách double click vào nút “hiện biểu tượng” 
và nhập vào đoạn mã sau: 
 Dim i As Integer 
 For i = 0 To 6 
 ptbBieutuong.Image = System.Drawing.Image.FromFile _ 
 ("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh vb.net\" & _ 
 "Tung buoc lap trinh vb.net\7_Chapter7\Bai 
tap\MyForloop_Advanced\" & _ 
 "MyForloop_Advanced\Icos\Face" & i & ".ico") 
 MsgBox("Click để thấy hình tiếp theo") 
 Next 
Tìm hiểu mã: 
Trong thư mục ICOS các file ảnh để tên trùng nhau phần đầu, chỉ khác nhau chỉ số cuối 
nên trong khai báo đường dẫn ta để biến I chạy & i & . 
Vì vòng FOR chạy tương đối nhanh và ta không thể quan sát tất cả các ảnh hiển thị được 
nên dùng hàm MsgBox() để nhìn được ảnh mỗi khi biến đếm tăng lên 1. 
Chạy chương trình: 
Bạn chạy chương trình như đã biết. 
Và đây là kết quả: 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 5 - Add: cnt-44-dh, VIMARU 
1.3. Sử dụng biến đếm toàn cục (Global) 
Ở chương trình trên, để thấy được ảnh tiếp theo thì bạn phải click vào hộp thoại. Điều này 
gây khó chịu. 
Bây giờ chung ta sẽ xây dựng lại chương trình này với biến toàn cục và phát biểu IF để 
khắc phục rắc rối trên. 
Bạn mở lại dự án trên ở chế độ viết mã và khai báo biến dem đồng thời khởi tạo giá trị cho 
nó là 0 đặt ngay dưới dòng Public Class Form1 như sau: 
 Dim dem As Integer = 1 
Trong thủ tục btnhienbieutuong_Click bạn thay đổi như sau: 
 ptbBieutuong.Image = System.Drawing.Image.FromFile _ 
 ("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh vb.net\" & _ 
 "Tung buoc lap trinh vb.net\7_Chapter7\Bai tap\" & _ 
 "MyForloop_Advanced\MyForloop_Advanced\Icos\Face" & dem & ".ico") 
 dem += 1 
 If dem = 6 Then 
 dem = 1 
 End If 
Bạn chạy lại chương trình và thấy sau mỗi lần click vào nút “hiện biểu tượng” thì một ảnh 
tiếp theo hiện ra không cần click vào hộp thoại như trước nữa. 
2. Vòng lặp DO LOOP 
Thay vì chạy có giới hạn như FOR NEXT thì DO LOOPS sẽ chạy không giới hạn cho đến 
khi nào điều kiện ghi trong phần WHILE sai thì mới dừng lại. 
Cú pháp: 
Do while bieuthuc 
 Khối lệnh 
Loop 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 6 - Add: cnt-44-dh, VIMARU 
Với vòng lặp kiểu này thì nếu ngay từ đầu biểu thức sai ngay thì vòng lặp sẽ không thực 
hiện một lệnh nào trong khối lệnh. Nếu muốn vòng lặp thực thi ít nhất là một lệnh thì bạn 
dùng cú pháp sau: 
Do 
 Khối lệnh 
Loop While Bieuthuc 
2.1. Tránh vòng lặp vô tận 
Nếu bạn thiết lập điều kiện không đúng thì vòng lặp có thể diễn ra vô tận. Ví dụ: 
 Dim i As Double = 12 
 Do 
 i += 1 
 Loop While i > 12 
Vòng lặp trên không bao giờ dừng lại được vì điều kiện trên không bao giờ sai. 
2.2. Dùng vòng lặp Do Loop viết chương trình chuyển đổi nhiệt độ 
Tạo một giải pháp mới và thêm vào một dự án cùng tên MyDoLoop_Temperature. Bạn tạo 
sự kiện Form1_load bằng cách double click vào form và nhập vào đoạn mã sau: 
 Dim FTemp, Celsius As Single 
 Dim strFtemp As String 
 Dim Prompt As String = "Điền vào một giá trị độ F" 
 Do 
 strFtemp = InputBox(Prompt, "Độ F sang độ C:") 
 If strFtemp "" Then 
 FTemp = CSng(strFtemp) 
 Celsius = Int((FTemp + 40) * 5 / 9 - 40) 
 MsgBox(Celsius, , "Nhiệt độ C là") 
 End If 
 Loop While strFtemp "" 
Chương trình này sẽ hiện một hộp thoại cho phép bạn nhập vào giá trị độ F để chuyển sang 
độ C. Vòng lặp sẽ thực thi liên tục, nếu bạn không nhập gì vào hộp thoại thì vòng lặp sẽ 
dừng lại. 
Sử dụng từ khóa Until trong phát biểu Do Loop 
Nếu ta dùng từ khóa Until thì chương trình se dừng lại khi nào điều kiện ước lượng nhận 
giá trị TRUE. Ví dụ chúng ta viết lại điều kiện Loop while strFtemp "" như sau: 
 Loop Until strFtemp = "" 
Thì chương trình không thay đổi kết quả thực thi. 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 7 - Add: cnt-44-dh, VIMARU 
3. Sử dụng bộ định thời TIMER 
Chúng ta có thể quy định một khối lệnh nào đó chỉ thực hiện trong một thời gian xác định 
với bộ định thời Timer. Sử dụng thuộc tính Interval và đặt Enalble của điều khiển Timer. 
Giá trị Interval bằng 1000 tương ứng với 1 giây. Khi được thiết đặt, timer sẽ phát sinh sự 
kiện Time_Tick để thực thi. Muốn dừng bộ định thời lúc nào thì đặt enable là fasle là được. 
Bây giờ chúng ta sẽ tạo ví dụ DigitalClock tạo bộ đếm giờ với điều khiển Timer. Ta đặt bộ 
đếm giây, khi thuộc tính enable là true thì cứ sau 1 giây (giá trị interval là 1000) thì hệ 
thống phát sinh sự kiện Time_Tick gọi thủ tục bạn thực thi. 
Thiết kế giao diện: 
Giao diện form gồm một nhãn hiện thông tin ngày và giờ là một đồng hồ điện tử như sau: 
Bạn tạo mới một giải pháp và add vào một dự án. Tạo form như trên bằng cách kéo một 
lable và đặt một điều khiển Timer1 vào form bằng cách nhắp đúp lên điều khiển này trên 
TOOLBOX. Bạn thiết đặt thuộc tính cho lable1 như hình. 
Thuộc tính Interval của Timer1 bạn đặt là 1000 (ứng với 1 s), thuộc tính enable bạn 
chuyển thành TRUE. 
Viết mã: 
Bạn tạo thủ tục Timer1_Tick bằng cách double click vào điều khiên Timer1 và nhập vào 
đoạn mã sau: 
 Label1.Text = "Ngày: " & DateTime.Now.Date & Chr(10) 
 Label1.Text &= TimeString 
Chạy chương trình: 
Bây giờ bạn hãy chạy chương trình và quan sát giao diện. Lúc này trên form có một đồng 
hồ điện tử như hình: 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 8 - Add: cnt-44-dh, VIMARU 
4. Sử dụng đối tượng TIMER để hạn chế thời gian 
Ta có thể sử dụng điều khiển TIMER để khống chế cho một tác vụ nào đó. Bài tập sau đây 
MyTimePassWord sẽ sử dụng điều khiển TIMER để giới hạn thời gian nhập mật khẩu của 
người dùng. 
Tìm hiểu chương trinh: 
Chương trình có một ô textbox cho phép nhập password. Nếu sau 15 giây mà người dùng 
không nhập mật khẩu chương trình đưa ra thông báo và kết thúc chương trình. Ngoài ra 
chương trình còn có một nút để click đăng nhập. Nếu người dùng không nhập pass thì 
thông báo lỗi chưa nhập pass, nhập đúng chuỗi “matkhau” thì báo thành công, ngược lại thì 
báo không đăng nhập được. 
Thiết kế giao diện: 
Tạo một giải pháp và thêm vào một dự án cùng tên là MyTimePassWord đồng thời thiết kế 
giao diện như hình trên. 
Đặt thuộc tính Interval của Timer1 là 15000 ứng với 15s và enable là TRUE. 
Viết mã: 
Trước hết ta cài đặt thủ tục Timer1_Tick để xử lý khi quá 15 giây mà người dùng chưa 
đăng nhập. Bạn tạo thủ tục này bằng cách double click vào TIMER1 và nhập mã: 
 MsgBox("Rất tiếc, đã hết 15 giây.") 
 End 
Bây giờ tạo thủ tục Button1_Click xử lý đăng nhập: 
 If TextBox1.Text = "" Then 
Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp và bộ định thời 
Biên soạn: Phạm Đức Lập - 9 - Add: cnt-44-dh, VIMARU 
 MsgBox("Bạn chưa nhập mật khẩu!") 
 Else 
 If TextBox1.Text = "matkhau" Then 
 Timer1.Enabled = False 
 MsgBox("Bạn đã đăng nhập thành công!") 
 Else 
 MsgBox("Bạn không có quyền truy cập!") 
 End If 
 End If 
Chạy chương trình: 
Bạn chạy chương trình và xem các tính năng của ví dụ trên. 
5. Tổng kết 
Bạn làm bảng tổng kết như mọi chương và làm thêm một số bài tập đơn giản sau: 
 - Viết lại ví dụ MyUserValidation ở chương 6 sử dụng bộ định thời để giới hạn thờ 
gian nhập password. 

File đính kèm:

  • pdfbai_giang_huong_dan_lap_trinh_vb_net_chuong_7_su_dung_phat_b.pdf