Posted under Visual Basic
KRONOMETRE YAPMAK
‘Formumuzun arabirimi şu şekilde olacak.
Dijital kronometre yapabilmek için gerekli olan en önemli araçlar yukarıdaki kırmızı renklerde olan dijital sayı resimleridir.Kronometre yapmak için sayıları kendimizin bir kontrole bağlayıp denetlememiz gerekir.(Ben en azından böyle yaptım.Her yiğidin bir yoğurt yemesi vardır Değil mi??)Visual Basic’deki Timer nesnesiyle bu işi yapmamız biraz zor çünkü bu işlemle kronometre çok zor Timer nesnesiyle ancak bir dijital saat programı yapılabilir bence.Mesela yukarıdaki programda gereksiz olan nesneler var örneğin Pencere Taşı, Simgeye Al,Devam Et gibi.Bu öğelerin programın içeriğine zenginlik katmak gibi bir amaç taşıyor.Her programla uğraşan kişilerin biraz dizayn yeteneği olmalı veya geliştirmeli bence…..
Ben daha önceden böyle dijital sayılarla ilgili bir şeylerle uğraşmak istiyordum fakat elimde dijital sayı resimleri yoktu. Bunları’da internet’ten indirdikten sonra programı yapmaya koyuldum.
Bu kadar sohbetten sonra programımıza başlayalım artık.
PROGRAMIN GÖRÜNEN YÜZÜ
PROGRAMIN GÖRÜNMEYEN YÜZÜ
Burada
label’lerini kontrol ettireceğiz
Bu labelleridende sayı artışını kendimiz sağlayacağız.Üçü’de ayrı birer label nesnesidir.
Sağdaki label’in ismi LblSaat . Ortadaki label’in ismi LblDakika ..Sağdaki label’in ismi LblSaniye ‘dir.
Timer nesnelerinin isimleri standart. Yani Timer1 ve Timer2.Bunlarla Nokta resimleri ve kronometre yapmak için sayıları kontrol edeceğiz.
Bu label nesnesinin ismi NOKTA bununla kronometrenin aralarındaki iki nokta ve tek nokta’yı kontrol ettireceğiz
Bunlar Dijital sayılarımız…Label’lere göre birbirlerinin görüntüsünü alacak olan image nesneleri.
İsimleri Sağdan itibaren Sıfır,Bir,iki,üç,Dört,Beş,Altı,Yedi,Sekiz,Dokuz
Aşağıdaki noktaların isimleri ise Sağdan itibaren
ikiNokta4,Bos2,TekNokta1,TekNoktaBos,ikiNokta2,Bos1
Burada açık mavi renkli yere kadar hepsi image nesnesi—Açık mavi olan nesne ise LblAsıl label’i
Sağdan itibaren isimleri
SaatSıfır , SaatSıfır1 , ikiNokta3 , DakikaSıfır1 , DakikaSıfır , ikiNokta1 , SaniyeSıfır , Sıfır , TekNokta
Bütün bu nesneleri oluşturmanız gerekecektir.Bu örneği kullanarak dijital saat geliştirmenizde mümkündür.Zaten onu’da bir başka doküman’da yollamayı düşünüyorum.
Hissediyorum sabırsızlanıyorsunuz .Nesneleri gördükten sonra kodları vermeye başlayalım artık.Değil mi??
Formun kod kısmını açarak ağır ağır bu kodları yazmaya başlayalım.
PROGRAM KODLARI BAŞLIYOR
‘Formumuzun GENERAL DECLARATIONS kısmına aşağıdaki kodu yazın
Dim Saat, Dakika, Saniye, Asıl
‘Kronometreyi Sıfırla Butonuna Aşağıdaki Kodu Yazın.
Private Sub Command5_Click() ‘KRONOMETREYİ SIFIRLA BUTONU
ikiNokta1.Picture = ikiNokta2.Picture ’Aralardaki Noktaların Kontrolü
ikiNokta3.Picture = ikiNokta4.Picture ’Aralardaki Noktaların Kontrolü
TekNokta.Picture = TekNokta1.Picture ’Aralardaki Noktaların Kontrolü
Command4.Enabled = True ‘Kronometreyi Başlat Butonunu Aktif Yap
Asıl = 0 ‘ Asıl Değişkenini Sıfırla
Saniye = 0 ‘ Saniye Değişkenini Sıfırla
Dakika = 0 ‘ Dakika Değişkenini Sıfırla
Saat = 0 ‘ Saat Değişkenini Sıfırla
LblAsıl.Caption = “00″ ‘Label’i Çift Sıfır Göster
LblSaniye.Caption = “00″ ‘Label’i Çift Sıfır Göster
LblDakika.Caption = “00″ ‘Label’i Çift Sıfır Göster
LblSaat.Caption = “00″ ‘Label’i Çift Sıfır Göster
Timer1.Enabled = False ‘Timer Nesnesini Durdur
Timer2.Enabled = False ‘Timer Nesnesini Durdur
End Sub
‘Programdan Çıkış Butonuna Aşağıdaki Kodu Yazın.
Private Sub Command6_Click() ‘PROGRAMDAN ÇIKIŞ BUTONU
SECIM = MsgBox(”Programdan Çıkmak İstiyormusunuz ???”, 36, “ÇIKMAK İSTİYORMUSUN??”)
If SECIM = 6 Then
End
End If
End Sub
‘Formun Load Yordamına Aşağıdaki Kodu Yazın
Private Sub Form_Load()
NOKTA = 0 ‘ NOKTA Değişkenini Sıfırla
Saniye = 0 ‘ Saniye Değişkenini Sıfırla
Dakika = 0 ‘ Dakika Değişkenini Sıfırla
Saat = 0 ‘ Saat Değişkenini Sıfırla
Asıl = 0 ‘ Saat Değişkenini Sıfırla
Timer1.Enabled = False ‘ Timer nesnesini durdur
Timer2.Enabled = False ‘ Timer nesnesini durdur
LblSaniye.Caption = “00″ ‘Label’i Çift Sıfır Göster
LblDakika.Caption = “00″ ‘Label’i Çift Sıfır Göster
LblSaat.Caption = “00″ ‘Label’i Çift Sıfır Göster
End Sub
‘Timer1 Nesnesine Aşağıdaki Kodu Yazın
‘Timer1 Nesnesinin interval özelliğini =1 yapın
Private Sub Timer1_Timer()
Asıl = Asıl + 4 ’ASIL EN SAĞDAKİ HIZLI SAYI
LblAsıl.Caption = Asıl ‘ Değişkeni Aktar
Select Case Asıl
Case Is >= 60
Asıl = 0
Saniye = Saniye + 1 ‘ Saniye’yi 1 Arttır
LblSaniye.Caption = Saniye ‘Değişkeni Aktar.
LblAsıl.Caption = “00″ ‘Bu bölümde yazılan kodlar değişken içieriğinde sayıları sadece
Case 1: LblAsıl.Caption = “01″ ‘1-2-3-4-5-6-7-8-9 gibi göstermesini engellemek için
Case 2: LblAsıl.Caption = “02″ ‘yani 01-02-03-04-05-06-07-08-09 gibi yazmasını sağlamak.
Case 3: LblAsıl.Caption = “03″
Case 4: LblAsıl.Caption = “04″
Case 5: LblAsıl.Caption = “05″
Case 6: LblAsıl.Caption = “06″
Case 7: LblAsıl.Caption = “07″
Case 8: LblAsıl.Caption = “08″
Case 9: LblAsıl.Caption = “09″
End Select
LblSaniye.Caption = Saniye
Select Case Saniye
Case 59
Saniye = 0
Dakika = Dakika + 1
LblDakika.Caption = Dakika
LblSaniye.Caption = “00″ ‘Bu bölümde yazılan kodlar değişken içieriğinde sayıları sadece
Case 1: LblSaniye.Caption = “01″ ‘1-2-3-4-5-6-7-8-9 gibi göstermesini engellemek için
Case 2: LblSaniye.Caption = “02″ ‘yani 01-02-03-04-05-06-07-08-09 gibi yazmasını sağlamak
Case 3: LblSaniye.Caption = “03″
Case 4: LblSaniye.Caption = “04″
Case 5: LblSaniye.Caption = “05″
Case 6: LblSaniye.Caption = “06″
Case 7: LblSaniye.Caption = “07″
Case 8: LblSaniye.Caption = “08″
Case 9: LblSaniye.Caption = “09″
End Select
LblDakika.Caption = Dakika ‘DAKİKA
Select Case Dakika
Case 59
Dakika = 0
Saat = Saat + 1
LblSaat.Caption = Saat
LblDakika.Caption = “00″ ‘Bu bölümde yazılan kodlar değişken içieriğinde sayıları sadece
Case 0: LblDakika = “00″ ‘1-2-3-4-5-6-7-8-9 gibi göstermesini engellemek için
Case 1: LblDakika.Caption = “01″ ‘yani 01-02-03-04-05-06-07-08-09 gibi yazmasını sağlamak
Case 2: LblDakika.Caption = “02″
Case 3: LblDakika.Caption = “03″
Case 4: LblDakika.Caption = “04″
Case 5: LblDakika.Caption = “05″
Case 6: LblDakika.Caption = “06″
Case 7: LblDakika.Caption = “07″
Case 8: LblDakika.Caption = “08″
Case 9: LblDakika.Caption = “09″
End Select
LblSaat.Caption = Saat ‘SAAT
Select Case Saat
Case 59
Saat = 0
‘Saat = Saat + 1
‘LblSaat.Caption = Saat
LblSaat.Caption = “00″ ‘Bu bölümde yazılan kodlar değişken içieriğinde sayıları sadece
Case 0: LblSaat = “00″ ‘1-2-3-4-5-6-7-8-9 gibi göstermesini engellemek için
Case 1: LblSaat.Caption = “01″ ‘yani 01-02-03-04-05-06-07-08-09 gibi yazmasını sağlamak
Case 2: LblSaat.Caption = “02″
Case 3: LblSaat.Caption = “03″
Case 4: LblSaat.Caption = “04″
Case 5: LblSaat.Caption = “05″
Case 6: LblSaat.Caption = “06″
Case 7: LblSaat.Caption = “07″
Case 8: LblSaat.Caption = “08″
Case 9: LblSaat.Caption = “09″
End Select
Saniye1 = Right(LblSaniye.Caption, 1) ’RESİM EKLEMEK İÇİN SANİYE
Select Case Saniye1
Case 0: Sıfır.Picture = JokerSıfır.Picture ‘SAYI 0 SA SIFIR OLAN RESMİ GÖSTER
Case 1: Sıfır.Picture = Bir.Picture
Case 2: Sıfır.Picture = iki.Picture
Case 3: Sıfır.Picture = üç.Picture
Case 4: Sıfır.Picture = Dört.Picture
Case 5: Sıfır.Picture = Beş.Picture
Case 6: Sıfır.Picture = Altı.Picture
Case 7: Sıfır.Picture = Yedi.Picture
Case 8: Sıfır.Picture = Sekiz.Picture
Case 9: Sıfır.Picture = Dokuz.Picture
End Select
Saniye2 = Mid(LblSaniye.Caption, 1, 1) ‘RESİM EKLEMEK İÇİN SANİYE
Select Case Saniye2
Case “0″: SaniyeSıfır.Picture = JokerSıfır.Picture ‘SAYI 0 SA SIFIR OLAN RESMİ GÖSTER
Case 1: SaniyeSıfır.Picture = Bir.Picture
Case 2: SaniyeSıfır.Picture = iki.Picture
Case 3: SaniyeSıfır.Picture = üç.Picture
Case 4: SaniyeSıfır.Picture = Dört.Picture
Case 5: SaniyeSıfır.Picture = Beş.Picture
Case 6: SaniyeSıfır.Picture = Altı.Picture
Case 7: SaniyeSıfır.Picture = Yedi.Picture
Case 8: SaniyeSıfır.Picture = Sekiz.Picture
Case 9: SaniyeSıfır.Picture = Dokuz.Picture
End Select
Dakika1 = Mid(LblDakika.Caption, 2, 1) ’RESİM EKLEMEK İÇİN DAKİKA
Select Case Dakika1
Case 0: DakikaSıfır.Picture = JokerSıfır.Picture ‘SAYI 0 SA SIFIR OLAN RESMİ GÖSTER
Case 1: DakikaSıfır.Picture = Bir.Picture
Case 2: DakikaSıfır.Picture = iki.Picture
Case 3: DakikaSıfır.Picture = üç.Picture
Case 4: DakikaSıfır.Picture = Dört.Picture
Case 5: DakikaSıfır.Picture = Beş.Picture
Case 6: DakikaSıfır.Picture = Altı.Picture
Case 7: DakikaSıfır.Picture = Yedi.Picture
Case 8: DakikaSıfır.Picture = Sekiz.Picture
Case 9: DakikaSıfır.Picture = Dokuz.Picture
End Select
Dakika2 = Mid(LblDakika.Caption, 1, 1) ‘RESİM EKLEMEK İÇİN DAKİKA
Select Case Dakika2
Case 0: DakikaSıfır1.Picture = JokerSıfır.Picture ‘SAYI 0 SA SIFIR OLAN RESMİ GÖSTER
Case 1: DakikaSıfır1.Picture = Bir.Picture
Case 2: DakikaSıfır1.Picture = iki.Picture
Case 3: DakikaSıfır1.Picture = üç.Picture
Case 4: DakikaSıfır1.Picture = Dört.Picture
Case 5: DakikaSıfır1.Picture = Beş.Picture
Case 6: DakikaSıfır1.Picture = Altı.Picture
Case 7: DakikaSıfır1.Picture = Yedi.Picture
Case 8: DakikaSıfır1.Picture = Sekiz.Picture
Case 9: DakikaSıfır1.Picture = Dokuz.Picture
End Select
Saat1 = Mid(LblSaat.Caption, 2, 1) ’RESİM EKLEMEK İÇİN SAAT
Select Case Saat1
Case 0: SaatSıfır1.Picture = JokerSıfır.Picture ‘SAYI 0 SA SIFIR OLAN RESMİ GÖSTER
Case 1: SaatSıfır1.Picture = Bir.Picture
Case 2: SaatSıfır1.Picture = iki.Picture
Case 3: SaatSıfır1.Picture = üç.Picture
Case 4: SaatSıfır1.Picture = Dört.Picture
Case 5: SaatSıfır1.Picture = Beş.Picture
Case 6: SaatSıfır1.Picture = Altı.Picture
Case 7: SaatSıfır1.Picture = Yedi.Picture
Case 8: SaatSıfır1.Picture = Sekiz.Picture
Case 9: SaatSıfır1.Picture = Dokuz.Picture
End Select
Saat2 = Mid(LblSaat.Caption, 1, 1) ‘RESİM EKLEMEK İÇİN SAAT
Select Case Saat2
Case 0: SaatSıfır.Picture = JokerSıfır.Picture ‘SAYI 0 SA SIFIR OLAN RESMİ GÖSTER
Case 1: SaatSıfır.Picture = Bir.Picture
Case 2: SaatSıfır.Picture = iki.Picture
Case 3: SaatSıfır.Picture = üç.Picture
Case 4: SaatSıfır.Picture = Dört.Picture
Case 5: SaatSıfır.Picture = Beş.Picture
Case 6: SaatSıfır.Picture = Altı.Picture
Case 7: SaatSıfır.Picture = Yedi.Picture
Case 8: SaatSıfır.Picture = Sekiz.Picture
Case 9: SaatSıfır.Picture = Dokuz.Picture
End Select
End Sub
‘ Kronometreyi Yeniden Başlat Butonuna Aşağıdaki Kodu Yazın
Private Sub Command1_Click()’Kronometreyi Yeniden Başlat Butonu
Command2.Enabled = True ‘Kronometreyi Durdur Butonu
Command3.Enabled = False ‘Devam Et Butonu
Asıl = 0
Saniye = 0
Dakika = 0
Saat = 0
LblAsıl.Caption = “”
LblSaniye.Caption = “00″
LblDakika.Caption = “00″
LblSaat.Caption = “00″
Timer1.Enabled = True ‘ Timer Nesnesini Durdur
Timer2.Enabled = True ‘Timer Nesnesini Durdur
End Sub
‘Kronometreyi Durdur Butonuna Aşağıdaki Kodu Yazın
Private Sub Command2_Click() ‘KRONOMETREYİ DURDUR
ikiNokta1.Picture = ikiNokta2.Picture
ikiNokta3.Picture = ikiNokta4.Picture
TekNokta.Picture = TekNokta1.Picture
Command2.Enabled = False ‘DURDUR
Command3.Enabled = True ‘DEVAM
Timer1.Enabled = False
Timer2.Enabled = False
End Sub
‘Devam Et Butonuna Aşağıdaki Kodu Yazın
Private Sub Command3_Click() ‘DEVAMET BUTONU
Timer1.Enabled = True
Timer2.Enabled = True
Command3.Enabled = False ‘DURDUR
Command2.Enabled = True ‘DEVAM
End Sub
‘Kronometreyi Başlat Butonuna Aşağıdaki Kodu Yazın
Private Sub Command4_Click() ‘KRONOMETREYİ BAŞLAT BUTONU
Timer1.Enabled = True
Timer2.Enabled = True
Command4.Enabled = False
Command2.Enabled = True
End Sub
‘ Timer2 Nesnesinin Timer Olayına Aşağıdaki Kodu Yazın
‘’’’********* INTERVAL özelliği 500 olacak
Private Sub Timer2_Timer()
NOKTA.Caption = Time
Select Case Right(NOKTA.Caption, 1)
Case 1
ikiNokta1.Picture = Bos1.Picture ‘ARADAKİ NOKTALARIN YANIP SÖNMESİ İÇİN
ikiNokta3.Picture = Bos2.Picture ‘ARADAKİ NOKTALARIN YANIP SÖNMESİ İÇİN
TekNokta.Picture = TekNoktaBos.Picture
Case 3
ikiNokta1.Picture = ikiNokta2.Picture
ikiNokta3.Picture = ikiNokta4.Picture
TekNokta.Picture = TekNokta1.Picture
Case 6
ikiNokta1.Picture = Bos1.Picture ‘ARADAKİ NOKTALARIN YANIP SÖNMESİ İÇİN
ikiNokta3.Picture = Bos2.Picture ‘ARADAKİ NOKTALARIN YANIP SÖNMESİ İÇİN
TekNokta.Picture = TekNoktaBos.Picture
Case 9
ikiNokta1.Picture = ikiNokta2.Picture
ikiNokta3.Picture = ikiNokta4.Picture
TekNokta.Picture = TekNokta1.Picture
End Select
End Sub