-
Xây dựng đồng hồ đếm ngược
Noname > 02-07-11, 11:37 AM
Ứng dụng này dùng trong các bài thi hay tương tự...
Thuật toán như sau:
Đầu tiên ta nhập vào thời gian để đếm ngược. Trong ví dụ này ta sẽ xem xét là số phút.
Số giây (s)= số phút (t) x 60
Số giờ hiển thị H1=lấy phần nguyên(số giây/ 3600 )
Số phút hiển thị T1= lấy phần nguyên(lấy phần lẻ (số giây/3600)/60)
Số giây hiển thị: S1= lấy phần lẻ (số giây/60)
Sau mỗi giây, ta sẽ trừ số giây đi 1. Và tính lại.
Tạo 1 form mới, trên form vẽ 2 textbox, 1 đặt tên là txtThoigian, 1 đặt tên là txtDongho
Tạo 1 nút nhấn, đặt tên là cmdBatdau
Ta cần đặt một số biến:
Mã:Dim sogiay As Long
Dim H1 As Integer
Dim T1 As Integer
Dim S1 As Integer
Code cho sự kiện cmdBatdau như sau:
Mã:Private Sub cmdBatDau_Click()
sogiay = txtThoigian * 60
Me.TimerInterval = 1000
End Sub
Đồng thời, ở sự kiện timer của form, ta làm như sau:
Mã:Private Sub Form_Timer()
txtDongho = dongho(sogiay)
sogiay = sogiay - 1
If sogiay < 0 Then
Me.TimerInterval = 0
End If
End Sub
Đồng thời xây dựng 1 function hiển thị đồng hồ:
Vậy là ta có một đồng hồ đếm ngược rồi.Mã:Function dongho(giay As Long) As String
H1 = Int(giay / 3600)
T1 = Int((giay Mod 3600) / 60)
S1 = giay Mod 60
dongho = Format(H1, "00") & ":" & Format(T1, "00") & ":" & Format(S1, "00")
End Function
Giờ mở form lên, nhập vào thời gian muốn tính ngược (giả sử 90), và nhấn bắt đầu. Rồi xem thành quả nhé!
Xem demo -
RE: Xây dựng đồng hồ đếm ngược
quanghoasla > 02-07-11, 05:56 PM
cảm ơn bác noname nhiều nhé. bài viết này rất hữu ích cho em và mọi người. -
RE: Xây dựng đồng hồ đếm ngược
DoquangLam > 02-07-11, 10:25 PM
Có cách nào, khi đóng forms lại thì đồng hồ ngưng lại, đến khi mình mở forms lên thì nó tiếp tục chạy được không. Cám ơn. -
RE: Xây dựng đồng hồ đếm ngược
quanghoasla > 02-07-11, 10:53 PM
(02-07-11, 10:25 PM)DoquangLam Đã viết: Có cách nào, khi đóng forms lại thì đồng hồ ngưng lại, đến khi mình mở forms lên thì nó tiếp tục chạy được không. Cám ơn.
anh noname nên tạo sự kiện mờ đi . và hiện 1 cmdstop thì hay hơn. tránh cho người dùng ấn đi ấn lại cái nút đó nhiều lần. đồng hồ sẽ tự đếm lại. -
RE: Xây dựng đồng hồ đếm ngược
Noname > 03-07-11, 08:27 AM
Các bạn chịu khó đọc code. Dòng này khi gọi sẽ khiến đồng hồ ngừng lại:
Mã:Me.TimerInterval = 0
Việc làm một đối tượng mờ đi, ta cho thuộc tính enable của đối tượng đó là no.
Việc làm một đối tượng ẩn đi, ta cho thuộc tính visible của đối tượng đó là no.
Những ý tưởng riêng lẽ các bạn nên tự mình phát triển lấy, ở đây mình chỉ nêu ra thủ thuật làm 1 đồng hồ thế nào thôi! -
RE: Xây dựng đồng hồ đếm ngược
paulquocdung > 13-08-11, 12:09 PM
Anh Noname ơi giúp em với,
Vấn Đề :
Em muốn xuất ra trên Form hoặc Report 6 dòng 8 cột trên một trang, dữ liệu lấy từ 1 table
VD : table co 240 dòng thì sẽ xuất ra 5 trang (6*8=48*5=240)
Làm hoài mà ko đuợc huhu -
RE: Xây dựng đồng hồ đếm ngược
Noname > 13-08-11, 01:03 PM
(13-08-11, 12:09 PM)paulquocdung Đã viết: Anh Noname ơi giúp em với,
Vấn Đề :
Em muốn xuất ra trên Form hoặc Report 6 dòng 8 cột trên một trang, dữ liệu lấy từ 1 table
VD : table co 240 dòng thì sẽ xuất ra 5 trang (6*8=48*5=240)
Làm hoài mà ko đuợc huhu
Bạn vui lòng post câu hỏi đúng topic, nếu không có topic nào cùng chủ đề thì tạo topic mới cho vấn đề này. Chú ý đặt tiêu đề! -
RE: Xây dựng đồng hồ đếm ngược
ledungddk001 > 17-03-15, 04:57 PM
Khi giữ click chuột vào Form thì đồng hồ sẽ ngưng đếm ngược. Trường hợp này xử lý thế nào được nhỉ ??/