10 Kasım 2010 Çarşamba

Basit Bir Kronometre Yapımı ( Sınıf Yardımı İle )

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