رفتن به مطلب
  • 0

مشکل در کار با timer


rezac

سوال

سلام دوستان.

من یه تایمر تعریف کردم در برنامه و میخام داخل یه label زمان باقی مانده تایمر هر لحظه تغییر کنه. اما فقط میشه اولین زمان یا آخرین زمان تایمر رو توی label نشون داد. مثلا من تایمر رو روی 5000 میلی ثانیه تنظیم کردم. میخام عددی که توی label نشون داده میشه از 5000 به 0 بیاد. اما عدد داخل لیبل فقط 5000 نشون میده بهم. راهنمایی کنید. میخام مثلا یه شمارنده باشه label.

اگه بشه که مقدار تایمر میلی ثانیه نباشه بهتره. مثلا از 5 ثانیه برسه به 0 خیلی عالیه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام خدمت شما

Sub Process_Globals
	Dim t As Timer
End Sub

Sub Globals
	Dim number As Int =5000
	Dim lb As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.Color=Colors.White
	
	lb.Initialize("")
	lb.TextColor=Colors.Red
	lb.TextSize=40
	lb.Gravity=Gravity.CENTER_HORIZONTAL+Gravity.CENTER_VERTICAL
	
	Activity.AddView(lb,50%x-50dip,50%y-50dip,100dip,100dip)
	
	t.Initialize("t",5000)
	t.Enabled=True
End Sub

Sub t_Tick
	If number > 0 Then
		number=number-1
		lb.Text=number
	Else
		ToastMessageShow("تمام",False)
		t.Enabled=False
	End If
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تایمر باید به این صورت اینشیالایز بشه 

t.Initialize("t",1000)

هر ثانیه باید تیک بخوره.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 20 ساعت قبل، rezac گفته است :

 

 

 

 

در 21 ساعت قبل، rezac گفته است :

دمتون گرم.

عالی بود.

سلام. اینم یه تست بزن :

Sub Process_Globals

Dim t As Timer

End Sub

Sub Globals
	
 Dim counter As Int

end sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("lay1")
	' تایمر و ثانیه شمار
	t.Initialize("Tmr",1000) ' طول هر ثانیه
counter = setSeconds(60) ' مدت زمان ثانیه
t.Enabled = True

   end sub




Sub Tmr_Tick
 If ( counter > 0) Then
 	 counter = counter - 1
	 Dim sMin As Int = Floor(counter / 60)
	 Dim sSec As Int = counter Mod 60
 	 Dim secPrefix As String =""
	 Dim minPrefix As String =""
 	 If (sSec < 10) Then
	  secPrefix = "0"
	 End If
	 If (sMin < 10 ) Then
	   minPrefix = "0"
	 End If
	 label1.Text = minPrefix & sMin &":"& secPrefix & sSec
 End If
 If  counter = 0 Then

End If
End Sub

اومدم ثانیه شمار و دقیقه شمار رو گذاشتم تو لیبل یک. و صفر شد یه دستوری میده

 

 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...