Sınıf Yardımı İle Basit Bir Kronometre Yapımı
Öncelikle toolbox a girip programa bir timer ekliyoruz..
Sonrasında properties bölümünden timer’ın ayarlarını şekildeki gibi oluşturuyoruz
Özellikle Interval’ını 1 yapıyoruz.
Interval’ı 1 yapmamızın sebebi az sonra oluşturacağımız kronometre sınıfındaki salise değişkenimizin her salise de bir artıracak olmamızdır.
Şimdi bir Kronometre sınıfı oluşturalım
class Kronometre
{
private int dk=0;
private int sn=0;
private int salise=0;
/*
3 adet field oluşturduk erişim belirleyicileri private çünkü az sonra oluşturacağımız propertyler ile bu fieldlara erişim sağlayacağız..
*/
public int Dk // Dk field’ına bir property oluşturduk
{
get { return dk; }
// get komutuyla dk fieldımızdaki değeri kullanıcıya yolladık..
set { dk = value; }
// set komutuyla ise kullanıcının bize yolladığı değeri(value) dk fieldımıza atadık..
}
public int Sn // Aynı işlemleri Saniye ve Salise içinde yaptık..
{
get { return sn; }
set { sn = value; }
}
public int Salise
{
get { return salise; }
set { salise = value; }
}
public void goster()
{
// geri dönüş değeri olmayan(void) goster adında public bir metod //oluşturduk..
if (Salise == 100)
{
Sn++;
Salise = 0;
// Salisenin her 100e ulaşmasında Saniyeyi 1 arttırdık..
}
if (Sn == 60)
{
// Saniyenin her 60a ulaşmasında Dakikayı 1 arttırdık..
Dk++;
Sn = 0;
}
}
}
// Böylece Basit Bir Kronometre Sınıfı oluşturmuş olduk..
FORM1.CS
public partial class Form1 : Form
{
Kronometre kr = new Kronometre();
//Oluşturduğumuz Kronometre sınıfından kr isminde bir nesne tanımladık..
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
//Button1(>) in Click Eventını açtık..
{
if (textBox1.Text != "")
{
String[] dizi;
dizi = textBox1.Text.Split(' ');
// Buraya dikkat önce String türünde bir dizi oluşturduk ve Split metodu ile textbox1’in Text’indeki “(' ')” bir boşluk ile birbirlerinden ayrılan tüm kelimeleri oluşturduğumuz diziye atadık.
kr.Dk= Convert.ToInt32(dizi[0]);
kr.Sn = Convert.ToInt32(dizi[1]);
kr.Salise = Convert.ToInt32(dizi[2]);
//dizi elemanlarındaki string sayılarımızı int türüne çevirip kr nesnemizin aracılığı ile Kronometre sınıfındaki Fieldlarımıza atadık.
}
timer1.Start();
// Oluşturduğumuz timer1 nesnemizi Start metodu ile başlattık..
button2.Enabled = true;
button1.Enabled = false;
// Button1’e tıklandığında (>) çalıştırma butonu olan Button1’i pasif yapıp (||) durdurma butonu olan button2 yi aktif yaptık..
}
private void button2_Click(object sender, EventArgs e)
{
button1.Enabled = true;
button2.Enabled = false;
timer1.Stop();
// Button2’ye tıklandığında timer1 nesnemizi Stop metodu ile Durdurduk..
}
private void timer1_Tick(object sender, EventArgs e)
// Timer1’in Eventlarından Tick Event’ına girdik( Intervalı 1 atadığımız için Her Salisede Çalışacaktır)
{
kr.Salise++;
// Kronometre Sınıfımızdaki Salise Fieldımızı timer1’in her tick’inde bir artıraracak olan komutu yazdık..
LblSalise.Text = kr.Salise.ToString();
LblSniye.Text = kr.Sn.ToString();
Lbldk.Text = kr.Dk.ToString();
// Sınıfımızdaki Salise,Sn ve Dk fieldlarımızı Form üzerindeki Label’lara atadık..
kr.goster();
// Kronometre sınıfımızdaki goster metodu ile de timer’ın her bir tick’inde sınıf içinde kronometre işlemlerinin yapılmasını sağlıyoruz..
}
}
Hiç yorum yok:
Yorum Gönder