WPF VB.net 8 පාඩම - Timer control භාවිතය.

8:10 PM 3 Comments
Winform  Application තුලදී මෙන් නොව WPF  Application  වල ටූල් බොක්ස් එක තුලදී Timer control  එක දැක ගත නොහැක. එමනිසා  WPF  තුලදී  Timer control  එකක් ලබා ගැනීම සදහාද කෝඩ් ලිවිය යුතුවේ. මේ සදහා පළමුව නව  WPF  ප්‍රොජෙක්ට් එකක් ලබා ගත යුතුය. එවිට මුලින්ම ලැබෙන්නේ  Mainwindow  එකයි. කෝඩ් ලීවීම සදහා පළමුව කෝඩ් වින්ඩෝව වෙත පිවිසිය යුතුය. ඒ සඳහා  MainWindow  එක මත ඩබල් ක්ලික් කර හෝ  Keyboard  එකෙහි  F7   කී එක ඔබා හෝ කෝඩ් වින්ඩෝවට පිවිසිය හැක.
නව Timer control එකක් ලබා ගැනීමට ප්‍රථම  Timer control  එක ඇති Class  එක ප්‍රොජෙක්ට් එක තුලට ලබා ගත යුතුය. ඒ සඳහා කෝඩ් වින්ඩෝ එකෙහි Class MainWindow යන්නට ඉහළින් පහත කෝඩ් පේළිය ලිවිය යුතුය.

Imports System.Windows.Threading

මෙහිදී සිදුවන්නේ Timer control එක ක්‍රියාත්මක වීමට අදාල මූලික කේතයන් ඇති  Class එක අපගේ ප්‍රොජෙක්ට් එක වෙත ලබාගැනීමයි. මෙලෙස අදාල Class එක ලබාගත් පසු නව Timer control එකක් ලබා ගැනීම සදහා වූ කෝඩ් ලිවිය හැක.

 නව Timer control එකක් ලබා ගැනීමට

මේ සඳහා කෝඩ් වින්ඩෝ එකෙහි Class MainWindow යන්නට පහළින් පහත කෝඩ් කොටස ලිවිය යුතුය

Dim MyTimerControl As New DispatcherTimer

මෙහිදී  MyTimerControl ලෙස යොදාගෙන ඇත්තේ අප විසින් ලබා ගනු ලැබූ නව Timer Control එකෙහි නමයි. මේ සදහා තමනි කැමති වෙනත් නමක් වූවද යොදාගත හැක.

සරල Counting වැඩසටහනක් නිර්මාණය.

මේ සඳහා පළමුව Button  දෙකක්  හා Label එකක් වින්ඩෝව මතට ලබා ගත යුතුය. පසුව ඒවායෙ ප්‍රොපටීස් පහත පරිදි සකසා ගත යුතුය.

Button ------    Name = btnStart
        Content = Start
Button ------    Name = btnStop
        Content = Stop
Label -------    Name = lblDisplay
        Content = 0

දැන් අප විසින් ලබා ගත් Timer Control එකට අදාලව Tick ඉවෙන්ට් එකක් ලබා ගත යුතුය.

Private Sub MyTimerControl_Tick(ByVal sender As Object, ByVal e As EventArgs)
        'Your Code here
End Sub

(මෙහිදී 'Your Code here යන්න කෝඩ් වින්ඩෝව තුලදී කොල පැහැයෙන් දැක්වෙන්නේ එම කොටස කමෙන්ට් එකක් ලෙස ක්‍රියාකරන බැවිනි. යම් කිසි වාක්‍ය කොටසකට ඉදිරියෙන් ' ලකුණ යෙදු විට එය කමෙන්ට් එකක් බවට පත් වෙයි. කමෙන්ට් එකක් වැඩසටහන ධාවනය වීමේදී ක්‍රියාත්මක නොවේ.)

Timer එක තුලදී කෝඩ් ලිවිය යුත්තේ 'Your Code here ලෙස සඳහන් ස්ථානයේය. එනම් Timer එකෙහි Tick ඉවෙන්ට් එක තුල ලියනු ලබන සියලුම කේතය ලබා දෙන කාල පරතරයකට වාරයක් නැවත ක්‍රියාත්මක වේ. එනම් අප විසින් සකසන Counting ඇප් එකෙහි කවුන්ට් වීමට අදාල කෝඩ් ලිවිය යුත්තෙ මෙම Tick ඉවෙන්ට් එක තුලය. දැන් කවුන්ට් වීමට අදාල කෝඩ් ලිවිය යුතුය. ඒ සදහා ප්‍රථමයෙන් වේරියබල් එකක් ලබා ගත් යුතුය. ඒ සදහා ඉහත Dim MyTimerControl As New DispatcherTimer යන කෝඩ් කොටසට ඉහලින් හෝ පහලින් පහත කෝඩ් කොටස ලිවිය යුතුය.

Dim count As Integer = 0

මෙහිදී count නම් ඉන්ටිජර් වේරියබල් එකක් ලබාගෙන ඇති අතර වැඩසටහන ආරම්භයේදී එහි අගය 0 ලෙස සකස් කර ඇත. මෙහි count වෙනුවට තමන් කැමති වෙනත් නමක් වූවද භාවිතා කල හැක.
දැන් කවුන්ට් වීමට අදාල කෝඩ් කොටස ඉහත ලබාගත් Timer Control එකහි Tick  ඉවෙන්ට් එක තුල ලිවිය යුතුය.

count = count + 1
lblDisplay.Content = count

ඉහත පළමු පේලියෙන් කෙරෙන්නේ count එකෙහි අගය දැනට පවතින count එකෙහි අගයට 1 එකක් එකතු කර සමාන කිරීමයි. දෙවන පේලියෙන් කෙරෙන්නේ එම එකක් එකතු කරන ලද නව අගය lblDisplay හි Content එක වෙත යොමු කිරීමයි.
ඉහත පළමු කේත පේළිය අවශ්‍ය නම් පහත ආකාරයට වූවද ලිවිය හැක.

count += 1

දැන් කවුන්ට් වීමට අදාල කෝඩ් ලියා අවසන්‍ ය.  දැන් සිදුකල යුත්තේ Timer Control එක ක්‍රියාත්මක වීමට අදාල කෝඩ් එක ලිවීමයි. මෙම වැඩසටහන අප සකසන්නෙ අප යොදාගත් බට්න් එක ක්ලික් කල විට කවුන්ට් වීම ආරම්භ වීමට නිසා යොදා ගත් බට්න් එකෙහි ක්ලික් ඉවෙන්ට් එක තුල පහත කෝඩ් ලිවිය යුතුය.

  AddHandler MyTimerControl.Tick, AddressOf MyTimerControl_Tick
  MyTimerControl.Interval = New TimeSpan(0, 0, 0, 0, 50)
  MyTimerControl.Start()

මෙහි AddHandler යටතේ හසුරුවනු ලබන්නේ කුමන කොන්ට්‍රෝල් එකෙහි කුමන ඉවෙන්ට් එකද යන්නත් AddressOf යටතේ හසුරුවනු ලබන ඉවෙන්ට් එකෙහි වියයුතු ක්‍රියාවන් ඇතුලත් Sub එකද දක්වයි.
දෙවන පේළියෙන් සිදුකර ඇත්තේ Timer එකෙහි කාල පරතරය හෙවත් Interval එක ලබා දීමයි. මෙහිදී Interval එක ලබා දිය යුත්තේ Time Span එකක් ලෙසයි. Time Span එකක් සදහා අගයන් යෙදීමේ දී පොදු ආකෘතිය පහත පරිදිවේ.

New TimeSpan(<දින ගණන>, <පැය ගණන>, <මිනිත්තු ගණන>, <තත්පර ගණන>, <මිලි තත්පර ගණන)

මෙහි මිලි තත්පර එකක් යනු තත්පරයෙන් දහසෙන් පන්ගුවකි.

තෙවන පේලියෙන් Timer එකෙහි ක්‍රියාකාරීත්වය අරඹයි.
කවුන්ට් වීම තාවකාලිකව නැවත් වීම සදහා btnStop ලෙස යොදාගත් බට්න් එකෙහි ක්ලික් ඉවෙන්ට් එකෙහි පහත කෝඩ් ලිවිය යුතුය.

MyTimerControl.Stop()

කවුන්ටින් ඇප් එක සාදා අවසන්‍ ය. දැන් ප්‍රෝග්‍රෑම් එක Run කල බැලිය හැක.