![]() |
#1 |
Timer (Zamanlayıcı)
TIMER NESNESİ
Timer(Zamanlayıcı) Zaman saatidir.Zamanın takip edilmesini sağlar,zamanlayıcı denetimidir ve çalışma kipinde görülmezler.Programda zamana bağlı işlemler yapılabilmesini sağlayan bileşendir.Timer nesnesi,kullanıcının göremeyeceği fakat belirtilen zaman aralıklarında istenilen görevleri yerine getiren bir nesnedir. Bu nesneyi örneğin,saat yapımında kullanabiliriz.Nesneden saat yapmasını bekleyemeyiz.Sadece 1 saniye zaman birimini bu nesne sayesinde kullanabiliriz. Eğer işlerin zamana göre yapılmasını istiyorsak timer nesnesini kullanırız.Özellikler kısmındaki invertal ile kaç milisaniyede bir işlevin tekrar edileceğini ayarlayabiliriz.Uygulamanın çalışması esnasında,zamana bağlı olarak belirli aralıklarla,belirli eylemlerin gerçekleşmesini denetlemek için kullanılır. Timer1.Interval = 1000 ‘ 1 saniyede 1 işlem yapılır Timer1.Interval = 500 ‘ 0,5 saniyede bir işlem yapılır TİMER NESNESİ ÖZELLİKLERİ Timer nesnesinin önemli iki özelliği vardır. Timer1.invertal= Zamanlamanın ne kadar olacağının ayarıdır.Yani,Timer denetiminin ne kadar aralıkla Timer olayını üreteceğini belirleriz.Milisaniye cinsinden bir değer yazarız.1 saniye için 1000 yazmalıyız. Timer1.enabled= Timer denetiminin aktif veya pasif olacağını belirler.Yani,Bu değeri enable yaparsak etkin,disable yaparsak etkin dışı olur. Zamanlayıcı denetiminin, aşağıda da görüldüğü gibi fazla özelliği yoktur Enabled Index Interval Left Name Parent Tag Top Name özelliği hariç (bir tmr ön takısı tavsiye edilir), zamanlayıcı denetiminin önemli olan sadece iki özelliği vardır.Enabled ve Interval özellikleri.Gerçektende zamanlayıcının herhangi bir şey yapmasını sağlamak için (Enabled özelliğinin değerinin,başlangıç değeri olan True olduğunu var sayarsak) bu özelliklerin değerlerini ayarlamamız gerekir.Left ve Top özellikleri aslında gereksizdir.Bir zamanlayıcıyı bir form üzerinde nereye yerleştirdiğimiz pek fark etmez. Interval özelliği mili saniye cinsinden ölçülür. Bu da saniyeleri saymak istediğimiz taktirde bu saniye sayısına 1000 ile çarpmamız gerektiği anlamına gelir.Bu süre geçtikten sonra (zamanlayıcı devrede ise),zamanlayıcı kendi TIMER olayını üretir.Bu işi de kısa aralıklarla sistem saatini kontrol ederek yapar. TİMER OLAYLARI Zamanlayıcı denetiminin sadece bir tek,uygun bir biçimde TIMER()adlı bir olayı vardır.Daha öncede belirtildiği gibi de bu olay belirli bir sürenin her geçişinde gerçekleşir.Bu süre Interval özelliği tarafından belirlenir.TIMER() olayının gerçekleşmesini durdurmak için çalışma kipinde zamanlayıcının Enabled özelliğinin değerine False yapabiliriz. Timer olayını kullanarak istediğimiz aralıklarla olaylar gerçekleştirebiliriz. Örnek: Bir saat yapalım. Private Sub Timer1_Timer ( ) Text1.Text=Time End Sub Örnek: Zamanı saniye cinsinden veren program. Dim sn Sn=Timer Msgbox sn ÖRNEK: Timer kontrolü kullanarak form başlığında saati gösteren bir program yazalım.Bunun için timer nesnesinin invertal özelliğini 1000 (1saniye) yapalım. Private Sub Timer1_Timer ( ) Form1.Caption= “Saat :” + Timer End Sub ÖRNEK: Bir Text yada Label üzerinden kayan bir yazı programı yazalım.Program için 1 adet Timer ve 1 adet Text veya Label gerekir. Option Explicit Dim yazi As string Private Sub Form_Load( ) Yazi=string(5, “ ” ) + “EMİNE” End Sub Private Sub Timer1_Timer( ) Yazi=mid (yazi,2)left (yazi,1) Text1.Text=yazi End Sub ÖRNEK: Timer kontrolü ile ayarlanan saat için alarm çalan bir program kodu yazalım.Bu kod için bir Timer ve adı ZAMAN olan bir text kutusu gerekmektedir. Option Explicit Dim saat,dakika,saniye As byte Private Sub Form_Load( ) Saat=Inputbox ( “Alarm saati giriniz: ”) Dakika=Inputbox ( “Alarm dakikasını giriniz: ”) Saniye=Inputbox ( “Alarm saniyesini giriniz: ”) Zaman.Text=saat + “ : ” + dakika + ” : ” + saniye End Sub Private Sub Timer1_Timer ( ) İf (hour (now)=val (trim(saat))) and (minute (now)=val (trim (dakika))) and (second (now) val (trim (saniye))) then beep: beep: beep Else End if End Sub ZAMANLAYICI YÖNTEMLERİ Zamanlayıcı yöntemi hiçbir yöntemi desteklemez. ZAMANLAYICILARIN KULLANILMASI Zamanlayıcı denetimi (yanda görülüyor),çalışma kipinde gizli olan az sayıdaki denetimden biridir.Bu da onun için bir form üzerinde yer bulmamıza gerek kalmadığı anlamına gelir;herhangi bir yere hatta mevcut denetimlerin üzerine bile yerleştirilebilir.Zamanlayıcı temel olarak sadece bir tek iş yapar.Sistem saatini kontrol eder ve buna göre bir tutum belirler. BİR ZAMANLAYICI DENETİMİNİ DENEYELİM Zamanlayıcının nasıl çalıştığı hakkında bir fikir edinmek için bir başlık çubuğu saati yapalım. 1.File→New Project komutunu vererek yeni bir proje açalım.Proje tipi Standard EXE. Olarak seçelim. 2.Form 1.’in Name özelliğinin değerini Frmmain,Caption özelliğinin değerini Application time yapalım. 3.FrmMain’e bir zamanlayıcı ekleyelim.Name özelliğinin değerini Tmrtimer yapalım. 4.Bu zamanlayıcının Interval özelliğinin değerini 500 yapalım.Bu saatin kendisi her yarım saniyede bir kontrol etmesini istiyoruz.Bunu zamanlayıcı denetimi bu türdeki diğer denetimler kadar hassas olmadığı için yaparız,ancak bu örnek için işe yarar. 5.Aşağıdaki kodu Frm Main’in (general)(Declarations)yordamına ekleyelim: Option Explicit Private OldCaption As String 6.Aşağıdaki kodu form_Load() olayına ekleyelim Private sub Form_Load() Oldcaption=Me.Caption End Sub. 7.Şimdide aşağıdaki kodu zamanlayıcının Timer ()olayına ekleyelim. Private Sub TmrTimer_Timer() Dim msg As String Msg=OldCaption &”:”& Time$ Caption=Msg End Sub. 8.Uygulamayı kaydederek Run→Start komutunu vermek suretiyle çalıştıralım. Bu etiketin biraz titrediğini fark edebiliriz.Bu durumu Timer() olayındaki kodu, Caption güncelleme sayısını en aza indirgeyecek biçimde değiştirerek azaltabiliriz. Private Sub TmrTimer_Timer() Dim msg as string Msg=OldCaption & “:” &Time $ If msg <>Caption Then Caption=msg End İf End Sub İf …Then ifadesi Time $ tarafından döndürülen saatin değişip değişmediğini kontrol eder.Msg karakter katarı Caption değerinden farklı olursa,bu zaman değişikliğini yansıtmak için Caption özelliğinin değerini değiştiririz,aksi taktirde Caption üzerinde bir güncellemeye neden olacak herhangi bir şey yapamayız.Titreme de geçer. |
|
![]() |
![]() |
![]() |
#2 |
|
![]()
Paylaşım için teşekkürler
|
![]() |
![]() |
![]() |
Etiketler |
timer, zamanlayici |
|
|