Timer Nesnesinin Kullanimi

Timer, adindan da anlasilacagi gibi bir tür sayaçtir.

Timer kontrolünün bünyesindeki interval özelligi sayesinde milisaniye (saniyenin binde biri) ile islem yapabiliriz. Bu su demektir; eger interval’i 1 olarak alirsak bir saniyede 1000 tick yapacaktir.

Hemen bir örnek uygulama yapalim:

.

Formumuzu açiyoruz ve bir timer ekliyoruz. Özellikler (properties) penceresinden interval degerini istedigimiz gibi ayarlayabiliriz (eger 1000 degerini verirsek saniyede 1 kere çalisir, eger 1 degerini verirsek saniyede 1000 kere çalisir). Ben 100 olarak aliyorum.

 

Ayrica formumuza iki tane buton ekliyoruz ve birinin adini (name) btnBasla, digerininkini ise btnDur seklinde degistiriyoruz. Tabii text özelligini de Basla ve Dur seklinde degistirmeyi unutmuyoruz.

Son olarak formumuza bir de etiket (label) ekliyoruz.

 

Ilk olarak Timer1 kontrolünden baslayalim uygulamamiza; çift tikliyor ve kod bölümüne geliyoruz.

 

Dim i As Integer

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

  i = i + 1

  Label1.Text = CStr(i)

End Sub

 

Burada yaptigimiz sey su; sayacimizin her tiklamasinda i degerine 1 ekliyor ve Label1‘e yazdiriyoruz (Cstr(i), integer olan i degerini String‘e çeviriyor).
 

Buraya kadar her sey tamam. Simdi sira sayacimizi baslatmaya geldi; zira henüz saymaya baslamadi.

Basla butonuna çift tikliyoruz ve Timer‘imizi baslatmak için gerekli talimati veriyoruz.

Private Sub Basla_Click(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles btnBasla.Click

  Timer1.Start()

End Sub

Gayet açik ve basit, degil mi?

Durdurmasi da baslatmasi kadar basit. Dur butonunu çift tikliyoruz:

 

Private Sub btnDur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDur.Click

        Timer1.Stop()

End Sub

Hepsi bu!

Simdi baska bir uygulamayi örnek vereyim istiyorum. Bu biraz alengirli olsun 🙂

Formumuza 3 tan buton ekleyelim ve bu butonlarin renklerini özellikler (properties) penceresinden kirmizi, mavi ve yesil olarak degistirelim (BackColor).

Kirmizi buton soldan saga,

Mavi buton sol üst köseden sag alt köseye,

Yesil buton ise üstten alta dogru kaysin.

Görüntüdeki gibi:

 

http://www.yazilimmutfagi.com/yuklenendosyalar/image/timer_butonlar.png

  .

 

Hemen Timer‘imize çift tiklayarak baslayalim o zaman:

 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If btnKirmizi.Left > Me.Width Then

            btnKirmizi.Left = 0 – btnKirmizi.Width

        Else

            btnKirmizi.Left += 5

        End If

        If btnYesil.Top > Me.ClientSize.Height Then

            btnYesil.Top = 0 – btnYesil.Height

        Else

            btnYesil.Top += 5

        End If

        If btnMavi.Top > Me.ClientSize.Height Or btnMavi.Left > Me.Width Then

            btnMavi.Top = 0 – btnMavi.Height

            btnMavi.Left = 0 – btnMavi.Width

        Else

            btnMavi.Top += 2

            btnMavi.Left += 5

        End If

End Sub

 

Kodlarimiza ilk satirdan baslayarak kisaca deginecek olursak:

 

Eger kirmizi butonun sol noktasi pencerenin genisliginden büyük ise, yani pencerenin disina çikmis ise kirmizi butonun sol noktasini tekrar 0-btnKirmizi.Width noktasina koy. Bu ne demektir; 0-buton genisligi. Eger bunu dogrudan 0 yapsaydik butonumuz pencere disina çiktiktan sonra aniden tekrar baslangiç noktasinda belirecekti. Biz yavas yavas pencereye girmesini istedik, o yüzden buton genisligi kadar geriden baslamasini söyledik. Digerleri de ayni mantikla çalisiyor.

Formumuzun  Load kismina da Timer‘in interval degerini ve basla (start) komutunu verelim:

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load

        Timer1.Interval = 25

        Timer1.Start()

End Sub

 

Interval degerini ilk örnegimizdeki gibi özellikler penceresinden de ayarlayabilirdik, ama bu sefer degisik yapalim istedim.

Son olarak deginecegim sey ise Timer‘in enable özelligidir. Kisa ve öz: Eger Timer ile isimiz bitti ise Timer1.Enabled = False diyoruz ve Timer nesnesini devre disi birakiyoruz.

Timer hakkinda söyleyecek elbette çok sey var, fakat giris için bu kadari kafi sanirim.

 

Örnek projeyi buradan indirebilirsiniz.

 

Herkesin kurban bayrami mübarek olsun 🙂

14 thoughts on “Timer Nesnesinin Kullanimi

  1. tskler abilerin birtanesi ellerine saglik kollarin dert görmesin süper yhaaa  yaptim puzzle burdada paylasacam süper oldu yhaaa :D:D:D

  2.  yetmoglu, elimden geldigince basite indirgemeye çalistim ve kaldi ki konu da yeni baslayanlar için. Makaledeki kodlari gözünde büyütme. Zaten vb.net konusma diline çok yakin bir programlama dilidir. Biraz Ingilizce’yle hasir nesir olursan anlamasi daha kolay gelir kanaatindeyim. Forum sayfamizda istedigin soruyu sorabilirsin.

  3. reis ya  ordaki bir çok komutu bilmiyorum bu nedenle pek anlayamadim  birazdaha açik anlatma imkanin varmi  🙁

     

     

     

  4. Çok Saol Ben Bot Yapiodum Diyorum Saniyede Nasil Çok Yazdiricam Timer Den Olduu Aklimin Ucundan bile geçmedi Saol Herkesin 23 Nisan i Kulu olsun

  5. Tesekkürler Ahmet Bey..Sizinde bayraminiz mübarek olsun..

    Gerçekten güzel bir anlatiminiz var. Cok tesekkür ederim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir