Saturday, April 4, 2015

Timer

ဒီေန႕ app ထဲ တခုခုအတြက္ အခ်ိန္ သက္မွတ္ေပးလို႕ရတဲ႕ (Timer) ကို ေျပာပါမယ္။မိမိ apk ထဲမွာ Project တခု ကို Run ေနရင္ ဒီ Program အတြက္ သက္မွတ္ ခ်ိန္ တခုထားေပးဖို႕အတြက္နဲ႕ တျခားေနရာေတာ္ေတာ္မ်ားမ်ားမွာ သံုလို႕ရပါတဟ္။ အခု Timer ကို သံုးဖို႕Sub Process_Globalsေအာက္မွာ
Dim T1 As Timer
ဒီလို Declare လုပ္လိုက္ပါ။ Timer က Activity အုပ္စုထဲကမဟုတ္ဘူး Process အမ်ိဳးအစား မို႕လို႕ သူ႕ကိုSub Globals ေအာက္မွာ Generate မလုပ္ပဲ႕နဲ႕ Sub Process_Globalsေအာက္မွာ Generate လုပ္ပါ။အခု Declare လုပ္ထားတဲ႕ T1 ကို Intialize လုပ္ပါမယ္။
Sub Activity_Createေအာက္မွာပဲ
T1.Intialize("Eventအမည္" , "ၾကာခ်ိန္") ဒီလိုပါ။
T1.Intialize("T1" , 200)
ဒါပါပဲ။ Intialize လုပ္ပီး တဲ႕အခါ Timer က Readyျဖစ္ေနပီ ဒါေပမဲ႕ မစေသးဘူး။ Timer ကို စဖို႕အတြက
္T1.Enabled = True
အာ့လို ထက္ေရးေပးရမယ္။ Activity Create ထဲမွာ ဒလို တန္းေရးေပးထားရင္ေတာ့ apk စတဲ႕ တန္းလုပ္မွာေပါ့တျခား ႀကိဳက္ရာ button ဘာညာကေန စခိုင္းလည္းရတာပါပဲ။T1.Enabled = False ဆိုရင္ေတာ့ ဒါ Timer ကို ရပ္ခိုင္းလိုက္ပီေပါ့။ဒါဆို Enable ေပးလိုက္ေတာ့ Timer က Run ပီ။ဒီေတာ့ ဘယ္ အခ်ိန္ Run ေန။ ဘယ္အထိေရာက္ လို႕ဘာေတျဖစ္ေနလဲ ဆိုတာ ဘာမွ ျမင္ရမွာ မဟုတ္ဘူး။ ဒါကို သိဖို႕အတြက္ Label တခုနဲ႕ စမ္းက်ိမယ္။ Designer မွာ label တခုထည့္ Text မွာ ဘာမွ မထည့္နဲ႕ Generate လုပ္ပီး save လိုက္။Activity.LoadLayout ကေန ဆြဲထား။
Sub Globals ထဲမွာ
Dim i As Int လို႕ တခု ထက္ေရးလိုက္ဒီ i ေလးရဲ႕ Value (ကိန္း တန္ဖိုး) ကို Label မွာ ျပသြားမယ္။အခု ေစာနက T1 ကို Intialize လုပ္ထားတဲ႕ Event အမည္နဲ႕ Sub တခု ေရးမွာ
Sub T1_Tick
.
End Sub
ဒလိုေပါ့။ဒီ Event က T1(Timer) run ေနတဲ႕ အခ်ိန္မွာ ျဖစ္ေနမယ့္ Process ပဲဒီေတာ့ event ထဲမွာ
i = i 1
Label1.Text = i
ဒလိုေလး ေရးလိုက္မာ္။i ရဲ႕ value က ဘာမွ မရွိေသးဘူးေလဒီ Event ထဲမွာ i = i 1 လို႕ေပးလိုက္ေတာ့ Timer Run တာနဲ႕ i ထဲကို 1 ခုခ်င္းဆီ ေပါင္းထည့္လိမ့္မယ္ Timer မရပ္မခ်င္း i ရဲ႕ တန္းဖိုးက တခုစီတက္လာမယ္။1/2/3/4/5 ဒလို အဆင္လိုက္ေပါ့။i = i 2 ဆိုရင္ ႏွစ္ခုဆီ ေပါင္းထည့္ေပးသြားမွာေပါ့။2/4/6/8/10 ဒလို သြားမွာေပါ့။
Label1.Text = i လို႕ေပးထားေတာ့ i မွာ တက္ေနတဲ႕ တန္ဖိုးကို Label မ ျပေနမယ္။ဒါဆို Timer ကို ျပန္ရပ္ဖို႕ပဲ က်န္ပီ။ ဘယ္အခ်ိန္ မွာ ရပ္ရင္ေကာင္းမလဲi ရဲ႕ တန္းဖို႕ 100 ျပဘ့္သြားရင္ Timer ကို ရပ္လိုက္မယ္။ဒီေတာ့
If i > 99 Then T1.Enabled = False
ဒလိုေလး ထက္ေရးထားယံုပါပဲ။ ဒီေတာ့ ကုဒ္ေတ အကုန္ေပါင္းရင
္Sub Process_Globals
Dim T1 As Timer
End

No comments:

Post a Comment