C# ile kronometre yapımı
Daha önceki yazılarımızda C# form temel bileşenleri olan Button, Textbox, Listbox, Radio Button, Checkbox, Combobox gibi nesneleri kullanmıştık. Bu temel nesneler üzerine eksikleriniz varsa yazı sonundaki uygulamalarına bakabilirsiniz.
Bu yazımızda C# programlama dili ile form nesnelerinden timer nesnesi kullanarak kronometre yapımını inceleyeceğiz. Aşağıdaki gibi bir form oluşturunuz. Burada Timer nesnesi görünmemektedir, bu nesneyi ToolBox'tan Components grubnu içinden bulup forma sürükleyiniz.
Yukarıdaki tasarımı yaptıktan sonra saniye: santisaniye şeklinde bilgi yazacağız. Buradaki santisalise saniyenin yüzde biridir, yani 100 santisalise=1 saniyedir. Buna göre Timer nesnesinin Interbal özelliğini 10 olarak ayarlıyoruz ama testlerde görünmediği için 100 yaparak kontrol ettim. Aşağıdaki gibi nesnelerin özelliklerini ayarlayalım.
Nesne | Name | Text |
Button | btnBaslat | Başlat |
Button | btnDurdur | Durdur |
Button | btnSifirla | Sıfırla |
Timer | timer1 | |
Label | labSayac | |
Form | Form1 | Kronometre |
labSayac isimli label nesnesinin BackColor ve ForeColor değerini istediğiniz renk yapabilirsiniz. Font tipini Arial Rounded 29 punto yaptık.
ilk önce form class'ının hemen altında aşağıdaki değişkenleri tanımlayıp ilk değerlerini verelim.
string sayac = "00:00";
string saniyeStr, santisaniyeStr;
int santisaniye, saniye;
Daha sonra Başlat düğmesine çift tıklayıp aşağıdaki kodu yazalım.
private void btnBaslat_Click(object sender, EventArgs e)
{
saniye = 0;
santisaniye = 0; //1 saniyenin 100'de biri
timer1.Enabled = true;
}
Sonra Form üzerinde boş bir alana çift tıklayıp ya da Events kısmından Form_Load() olayına gelelim ve aşağıdaki kodu yazalım.
Daha sonra Durdur diğmesine çift tıklayıp aşağıdaki şekilde yazalımSonra Form üzerinde boş bir alana çift tıklayıp ya da Events kısmından Form_Load() olayına gelelim ve aşağıdaki kodu yazalım.
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = false;
labSayac.Text = "00:00";
timer1.Interval = 10; // 1 santisalise için 10, 1000 yazarsak 1 saniyeye ayarlarız.
}
private void btnDurdur_Click(object sender, EventArgs e)
{
if (timer1.Enabled)
{
timer1.Enabled = false;
btnDurdur.Text = "Devam";
}
else
{
timer1.Enabled = true;
btnDurdur.Text = "Durdur";
}
labSayac.Text = sayac.ToString();
}
Timer nesnesinin Tick olayına (Events'dan) gelip aşağıdaki kodu yazalım. Buradaki algoritma çok önemli, santisaiye 99 dan küçükse bir artırıyoruz, 99'a eşitse sıfırlayıp, saniye değerini bir artırıyoruz. Güzel görünmesi için de santisalise ve saniye değeri 10 dan küçükse önüne 0 ekliyoruz.
Durdur düğmesine tıkladığınızda timer durdurulur ve btnDurdur butonunun etiketi Devam Et olarak değiştirilir, tekrar Devam et butonuna tıklanırsa timer nesnesi tekrar başlatılır ve buton etiketi tekrar Durdur olarak değiştirilir.
Durdur düğmesine tıkladığınızda timer durdurulur ve btnDurdur butonunun etiketi Devam Et olarak değiştirilir, tekrar Devam et butonuna tıklanırsa timer nesnesi tekrar başlatılır ve buton etiketi tekrar Durdur olarak değiştirilir.
private void timer1_Tick(object sender, EventArgs e)
{
if (santisaniye<99)
santisaniye++;
else if (santisaniye == 99)
{
santisaniye = 0;
saniye++;
}
saniyeStr = saniye.ToString();
santisaniyeStr = santisaniye.ToString();
if (saniye < 10)
saniyeStr = "0" + saniyeStr;
if (santisaniye < 10)
santisaniyeStr = "0" + santisaniyeStr;
sayac = saniyeStr + ":" + santisaniyeStr;
labSayac.Text = sayac;
}
namespace Kronometre_Otas
{
public partial class Form1 : Form
{
string sayac = "00:00";
string saniyeStr, santisaniyeStr;
int santisaniye, saniye;
public Form1()
{
InitializeComponent();
}
private void btnBaslat_Click(object sender, EventArgs e)
{
saniye = 0;
santisaniye = 0; //1 saniyenin 100'de biri
timer1.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = false;
labSayac.Text = "00:00";
timer1.Interval = 10; // 1 santisalise için 10, 1000 yazarsak 1 saniyeye ayarlarız.
}
private void timer1_Tick(object sender, EventArgs e)
{
if (santisaniye<99)
santisaniye++;
else if (santisaniye == 99)
{
santisaniye = 0;
saniye++;
}
saniyeStr = saniye.ToString();
santisaniyeStr = santisaniye.ToString();
if (saniye < 10)
saniyeStr = "0" + saniyeStr;
if (santisaniye < 10)
santisaniyeStr = "0" + santisaniyeStr;
sayac = saniyeStr + ":" + santisaniyeStr;
labSayac.Text = sayac;
}
private void btnDurdur_Click(object sender, EventArgs e)
{
if (timer1.Enabled)
{
timer1.Enabled = false;
btnDurdur.Text = "Devam";
}
else
{
timer1.Enabled = true;
btnDurdur.Text = "Durdur";
}
labSayac.Text = sayac.ToString();
}
private void btnSifirla_Click(object sender, EventArgs e)
{
sayac = "00:00";
santisaniye = 0;
saniye = 0;
labSayac.Text = sayac.ToString();
}
}
}
Diğer Örnekler
C# ile üç sayının en büyüğünü bulan metod
C# ile Rastgele Sayı Üretip Ortalamasını Alma
Bir dizideki elemanları diğer Dizide Arama
C# Form ile İş Listesi (To-Do-List Uygulaması)
C# ile Türkçe İngilizce Sözlük Yapımı
C# ile Rastgele Sayı Üretip Tahmin Etme Oyunu
Mutlu Kodlamalar,
Oğuzhan TAŞ
Aralık 2023
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?
- :: PHP ile MySQL veritabanına MySQLi t...