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:
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 🙂
çapam, toolbox’da olmasi lazim..
arkadaslar ya ben timer buttonunu bulamadim
aylin istersen makale haline getir wordde yaz. bana mail at. ben senin adina eklerim.
bilgi@yazilimmutfagi.com adresine gönderebilirsin.
ben de puzzle yaptim kaydirma yöntemi ile ama nasil yülkleyecem bilmiyom
tskler abilerin birtanesi ellerine saglik kollarin dert görmesin süper yhaaa yaptim puzzle burdada paylasacam süper oldu yhaaa :D:D:D
güzel baya isime yaradi
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.
reis ya ordaki bir çok komutu bilmiyorum bu nedenle pek anlayamadim birazdaha açik anlatma imkanin varmi 🙁
hersey çok güzel anlatilmis çok tesekkür ediyorum…
Elbette, elimden geleni yaparim. Forum sayfamizda takildiginiz yerleri beldirebilirsiniz.
Slm ahmet bey bnm Yil sonu ödevim var Hastane Otomasyonu Yardim edermisiniz bu konuda bana?
Ç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
tesekkürler
Tesekkürler Ahmet Bey..Sizinde bayraminiz mübarek olsun..
Gerçekten güzel bir anlatiminiz var. Cok tesekkür ederim.