10 Şubat 2014 Pazartesi

C Sharp Form Grafik Nesnesi Kullanarak Forma Yazı Yazdırma Örnekleri



KONU : C Sharp ( C# ) form uygulamalar grafik nesnesini kullanarak form üzerine yazı yazma, c# forma yazı yazdırma, csharp timer kullanımı, c sharp forma grafiksel görseller ekleme ve timer kullanımı.






UYGULAMAYI İNDİR



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Grafik_nesnesi_ile_yazı_yaz
{

    public partial class Form1 : Form
    {
        private System.Windows.Forms.Timer timer;

        private System.Windows.Forms.Button button;
        int tiklama = 0;

        public Form1()
        {
            // form ile ilgili ayarları yapma

            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Grafik nesnesinin çalışması için gerekli ayarlar

            timer.Enabled = false;

            timer.Interval = 100;
        }

        private void button_Click(object sender, EventArgs e)
        {

            // Grafik nesnesi ile yazma, tek tıklamalarda duracak

            // Grafik nesnesi ile yazma, çift tıklamalarda başlayacak

            if (tiklama % 2 == 0)
            {
                timer.Enabled = true;

                IsmıYaz();

                button.Text = "Durdur";
            }
            else
            {
                timer.Enabled = false;

                button.Text = "Yazdır";
              
            }

            tiklama++;

        }

        private void IsmıYaz()
        {
            //bu fonksiyon ile grafik nesnesi kullanarak form üzerinde

            //rasgele bir noktaya tırnak içinde verilen yazıyı yazdıracağız

            Graphics g;

            g = this.CreateGraphics();

            Random rdm = new Random();//raagele noktalar oluşturmak için bu

            //rdm random sınıfının bir örneğini kullancağız
            try
            {
                g.DrawString("Bu bir c sharp uygulamasıdır", new Font(FontFamily.Families[rdm.Next(100)], 30,
        FontStyle.Bold), new SolidBrush(Color.FromArgb(rdm.Next(255),
        rdm.Next(255), rdm.Next(255))), rdm.Next(this.Width), rdm.Next(this.Height));
            }
            catch
            { }
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            IsmıYaz();

            //bu metod ile timerın her tick olayında ekranın herhangi bir 

            //yerine rastgele bir font da Fetih Köksal yazısı eklenecek.
        }
    }
}

UYGULAMAYI İNDİR

C Sharp Uygulamalar Formlar Arası Kontrollerin Yönetimi ve Formlar Arası TextBox Kontrolü



KONU : C sharp Form Uygulamalar Formlar arası işlem yapma




C Sharp Form Uygulamalar formlar arasında kontroleri yönetme 

UYGULAMAYI İNDİR



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace formlar_arasinda_islemler_form_kontrolleri
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public static TextBox textbox = null;

        private void button_formu_ac_Click(object sender, EventArgs e)
        {
            FormNumaralar formnumaralar = new FormNumaralar();
            formnumaralar.ShowDialog();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textbox = new TextBox();
            textbox.TextChanged += new EventHandler(textbox_TextChanged);
        }

        public void textbox_TextChanged(object sender, EventArgs e)
        {
            textBox_girilen_numaralar.Text = (sender as TextBox).Text;
        }

 

    }
}

Form1 programı çalıştırdığımızda açılacak formdur. Bu form üzerinde numaraları aç butonuna tıklandığında ikinci formumuz açılacak. Bu formun ismi de FormNumaralar olsun. Bu form 0 ile 9 arasındaki rakamları gösteren 10 tane buton, bir tane sil butonu ve bir tane de kapat butonundan oluşmakta. FormNumaralar formunda yapılan işlemler yani her basılan butonun text değerini ana formumuz (Form1) üzerindeki textbox da gösterebilmek için ana formumuzdaki Textbox Nesnesini statik ve public olarak tanımladık.

 public static TextBox textbox = null;

Böylece FormNumaralar formunda bu textbox aşağıdaki gibi yazarak ulaşmış olacağız.

Form1.textbox.Text += (sender as Button).Text;

Yaptığımız bütün değişikleri anında ana formdaki private olarak sürükle bırak şeklinde yerleştirdiğimiz textbox (bu textbox ın ismini textBox_girilen_numaralar olarak atadım) da görmüş olacağız. Bunu da static textbox ın textbox_TextChanged olayında bütün değişikliği aynen ana formdaki textbox ın Text özelliğine eşitliyoruz. Böylece farklı iki form arasındaki buton kontrollerinin Text değerlerini diğer formdaki textbox değerine atamış oluyoruz.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace formlar_arasinda_islemler_form_kontrolleri
{

    public partial class FormNumaralar : Form
    {
        public FormNumaralar()
        {
            InitializeComponent();
        }

        private void button_kapat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void butonlar_click(object sender, EventArgs e)
        {
            if (!(sender as Button).Text.Equals("Sil"))
                Form1.textbox.Text += (sender as Button).Text;
            else
                if (Form1.textbox.Text.Length > 0)
                    Form1.textbox.Text = Form1.textbox.Text.Substring(0, Form1.textbox.Text.Length - 1);
        }

    }
}


UYGULAMAYI İNDİR

31 Ocak 2014 Cuma

C Sharp Form Uygulamalar Thread Kullanarak Pastacı ve Tedarikçi Arasında İşlemler Yaptırma



KONU : C Sharp Uygulamalar - C Sharp ( C# ). Üç farklı pastacının elinde pasta yapmak için gerekli malzemelerden (un, yağ ve şeker) sadece bir tanesi mevcut olsun. Tedarikçinin elinde ise bu malzemelerden sonsuz olmasına rağmen her dağıtımda sadece 2 farklı malzeme sağlamakta (yağ+un, yağ+şeker veya un+yağ). Tedarikci ve pastacılar için birer process veya thread oluşturun (toplam 4 tane). Tedarikçi her dağıtımda elinde diğer malzemeyi tutan pastacıyı uyandıracak. Örneğin un ve yağ dağıtımı yapıyorsa, elinde şeker olan pastacıyı uyandıracak. Her pastacıda pasta yapabilmek tedarikçiyi uyandıracak ve gerekli malzemeleri dağıtılmasını bekleyecek. Bütün pastacılar belli sayıda pasta yaptığında (her pastacı için farklı olabilir), program sonlanacak. Tedarikçi her dağıtımda bir pasta yapımına yetecek kadar malzeme sağlamakta. Programı açıklayacak ekran çıktıları oluşturun (Soru 1’de verilen örnek çalışma gibi) ve farklı pasta sayıları için programı çalıştırarak sonuçları yorumlayın. İp ucu: Bu soru için üretici/tüketici problemini göz önüne alabilirsiniz.
ETİKETLER: c sharp groupbox - c sharp timer - c sharp thread - c sharp threadstart - c sharp form - c sharp multi thread





UYGULAMAYI İNDİR



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace C_Sharp_Form_Tedarikci_Pastacilar_Thread
{
    public partial class Form1 : Form
    {
        public delegate void IslemDelegateHandler();
        public IslemDelegateHandler islemDelegatePasta1;
        Thread threadPasta1 = null;
        public IslemDelegateHandler islemDelegatePasta2;
        Thread threadPasta2 = null;
        public IslemDelegateHandler islemDelegatePasta3;
        Thread threadPasta3 = null;
        public IslemDelegateHandler islemDelegateTedarikci;
        Thread threadTedarikci = null;
        int counterPasta=0;
        int counterTedarik = 0;
        int pasta1Sure = 0;
        int pasta2Sure = 0;
        int pasta3Sure = 0;
        int tedarikciSure = 0;
        int pasta1adet = 0;
        int pasta2adet = 0;
        int pasta3adet = 0;
        int pasta1UretilenAdet = 0;
        int pasta2UretilenAdet = 0;
        int pasta3UretilenAdet = 0;
        bool pasta1Uretilebilir = false;
        bool pasta2Uretilebilir = false;
        bool pasta3Uretilebilir = false;
        bool tedarikYapilsin = false;
        bool unYagIste = false;
        bool unSekerIste = false;
        bool sekerYagIste = false;

        bool unYagIsteAktif = false;
        bool unSekerIsteAktif = false;
        bool sekerYagIsteAktif = false;
        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            islemDelegatePasta1 = new IslemDelegateHandler(Pasta1Islemleri);
            islemDelegatePasta2 = new IslemDelegateHandler(Pasta2Islemleri);
            islemDelegatePasta3 = new IslemDelegateHandler(Pasta3Islemleri);
            islemDelegateTedarikci = new IslemDelegateHandler(TedarikciIslemleri);

            ParameterizedThreadStart threadDelegatePasta1 = new ParameterizedThreadStart(this.ThreadFuncPasta1);
            threadPasta1 = new System.Threading.Thread(threadDelegatePasta1);
            threadPasta1.IsBackground = true;
            threadPasta1.Start(null);

            ParameterizedThreadStart threadDelegatePasta2= new ParameterizedThreadStart(this.ThreadFuncPasta2);
            threadPasta2 = new System.Threading.Thread(threadDelegatePasta2);
            threadPasta2.IsBackground = true;
            threadPasta2.Start(null);


            ParameterizedThreadStart threadDelegatePasta3 = new ParameterizedThreadStart(this.ThreadFuncPasta3);
            threadPasta3 = new System.Threading.Thread(threadDelegatePasta3);
            threadPasta3.IsBackground = true;
            threadPasta3.Start(null);

            ParameterizedThreadStart threadDelegateTedarikci = new ParameterizedThreadStart(this.ThreadFuncTedarikci);
            threadTedarikci = new System.Threading.Thread(threadDelegateTedarikci);
            threadTedarikci.IsBackground = true;
            threadTedarikci.Start(null);
        }

        private AutoResetEvent waitHandle = new AutoResetEvent(true);

        public void ThreadFuncPasta1(object parameter)
        {
            // While this mode is selected
            while (true)
            {
                if (progressBarPasta1Seker.Value != 0 && progressBarPasta1Un.Value != 0 && progressBarPasta1Yag.Value != 0)
                {
                    pasta1Uretilebilir = true;
                }
                else
                {
                    pasta1Uretilebilir = false;
                }

                // Waiting for Receive-Event
                if (waitHandle.WaitOne(50) && pasta1Uretilebilir)
   
                    this.Invoke(islemDelegatePasta1);
            }
        }

        public void ThreadFuncPasta2(object parameter)
        {
            // While this mode is selected
            while (true)
            {
                if (progressBarPasta2Seker.Value != 0 && progressBarPasta2Un.Value != 0 && progressBarPasta2Yag.Value != 0)
                {
                    pasta2Uretilebilir = true;
                }
                else
                {
                    pasta2Uretilebilir = false;
                }

                // Waiting for Receive-Event
                if (waitHandle.WaitOne(50) && pasta2Uretilebilir)

                    this.Invoke(islemDelegatePasta2);
            }
        }

        public void ThreadFuncPasta3(object parameter)
        {
            // While this mode is selected
            while (true)
            {
                if (progressBarPasta3Seker.Value != 0 && progressBarPasta3Un.Value != 0 && progressBarPasta3Yag.Value != 0)
                {
                    pasta3Uretilebilir = true;
                }
                else
                {
                    pasta3Uretilebilir = false;
                }

                // Waiting for Receive-Event
                if (waitHandle.WaitOne(50) && pasta3Uretilebilir)

                    this.Invoke(islemDelegatePasta3);
            }
        }

        public void ThreadFuncTedarikci(object parameter)
        {
            // While this mode is selected
            while (true)
            {

                if (unYagIste || unSekerIste || sekerYagIste)
                {
                    tedarikYapilsin = true;
                }
                else
                {
                    tedarikYapilsin = false;
                }
                // Waiting for Receive-Event
                if (waitHandle.WaitOne(50) && tedarikYapilsin)

                    this.Invoke(islemDelegateTedarikci);
            }
        }

        private void Pasta1Islemleri()
        {
            if (pasta1Sure == 0)
            {
                pasta1Sure = counterPasta;
            }
            else 
            {
                int value = counterPasta - pasta1Sure;
                if (value < 100)
                {
                    progressPasta1.Value = value;
                    progressBarPasta1Yag.Value = 100 - value;
                    progressBarPasta1Seker.Value = 100 - value;
                }
                else
                {
                    pasta1UretilenAdet += 1;
                    lblPasta1Uretilen.Text = pasta1UretilenAdet.ToString();
                    progressPasta1.Value = 0;
                    pasta1Sure = 0;
                    progressBarPasta1Yag.Value = 0;
                    progressBarPasta1Seker.Value = 0;

                    if (pasta1adet != pasta1UretilenAdet)
                    {
                        sekerYagIste = true;
                    }
                }
                  
            }
        }

        private void Pasta2Islemleri()
        {
            if (pasta2Sure == 0)
            {
                pasta2Sure = counterPasta;
            }
            else
            {
                int value = counterPasta - pasta2Sure;
                if (value < 100)
                {
                    progressPasta2.Value = value;
                    progressBarPasta2Un.Value = 100 - value;
                    progressBarPasta2Seker.Value = 100 - value;
                }
                else
                {
                    pasta2UretilenAdet += 1;
                    lblPasta2Uretilen.Text = pasta2UretilenAdet.ToString();
                    progressPasta2.Value = 0;
                    pasta2Sure = 0;
                    progressBarPasta2Un.Value = 0;
                    progressBarPasta2Seker.Value = 0;

                    if (pasta2adet != pasta2UretilenAdet)
                    {
                        unSekerIste = true;
                    }
                }
            }
        }

        private void Pasta3Islemleri()
        {
            if (pasta3Sure == 0)
            {
                pasta3Sure = counterPasta;
            }
            else
            {
                int value = counterPasta - pasta3Sure;
                if (value < 100)
                {
                    progressPasta3.Value = value;
                    progressBarPasta3Un.Value = 100 - value;
                    progressBarPasta3Yag.Value = 100 - value;
                }
                else
                {
                    pasta3UretilenAdet += 1;
                    lblPasta3Uretilen.Text = pasta3UretilenAdet.ToString();
                    progressPasta3.Value = 0;
                    pasta3Sure = 0;
                    progressBarPasta3Un.Value = 0;
                    progressBarPasta3Yag.Value = 0;

                    if (pasta3adet != pasta3UretilenAdet)
                    {
                        unYagIste = true;
                    }
                }
            }
        }

        private void TedarikciIslemleri()
        {

            if (tedarikciSure == 0)
            {
                tedarikciSure = counterTedarik;
            }
            else
            {
                int value = counterTedarik - tedarikciSure;

                int ister = 0;

                if (unYagIste && !unSekerIsteAktif && !sekerYagIsteAktif )
                {
                    ister = 3;
                    unYagIsteAktif = true;
                    lblTedarikciDurum.Text = "3. Pastacı için tedarik sağlanıyor";
                }
                else if (unSekerIste && !unYagIsteAktif && !sekerYagIsteAktif)
                {
                    ister = 2;
                    unSekerIsteAktif = true;
                    lblTedarikciDurum.Text = "2. Pastacı için tedarik sağlanıyor";
                }
                else if (sekerYagIste && !unSekerIsteAktif && !unYagIsteAktif)
                {
                    ister = 1;
                    sekerYagIsteAktif = true;
                    lblTedarikciDurum.Text = "1. Pastacı için tedarik sağlanıyor";
                }

                    switch (ister)
                    {
                        case 1:
                            if (value < 100)
                            {
                                progressBarTedatikciSeker.Value = value;
                                progressBarTedatikciYag.Value = value;
                            }
                            else
                            {
                                progressBarTedatikciSeker.Value = 100;
                                progressBarTedatikciYag.Value = 100;

                                progressBarPasta1Seker.Value = 100;
                                progressBarPasta1Yag.Value = 100;
                                sekerYagIsteAktif = false;
                                sekerYagIste = false;
                                tedarikciSure = 0;

                                lblTedarikciDurum.Text = "Talep bekliyor...";
                            }
                            break;

                        case 2:
                            if (value < 100)
                            {
                                progressBarTedatikciSeker.Value = value;
                                progressBarTedatikciUn.Value = value;
                            }
                            else
                            {
                                progressBarTedatikciSeker.Value = 0;
                                progressBarTedatikciUn.Value = 0;

                                progressBarPasta2Seker.Value = 100;
                                progressBarPasta2Un.Value = 100;
                                unSekerIsteAktif = false;
                                unSekerIste = false;
                                tedarikciSure = 0;
                                lblTedarikciDurum.Text = "Talep bekliyor...";
                            }
                            break;

                        case 3:
                            if (value < 100)
                            {
                                progressBarTedatikciYag.Value = value;
                                progressBarTedatikciUn.Value = value;
                            }
                            else
                            {
                                progressBarTedatikciYag.Value = 0;
                                progressBarTedatikciUn.Value = 0;

                                progressBarPasta3Yag.Value = 100;
                                progressBarPasta3Un.Value = 100;
                                unYagIsteAktif = false;
                                unYagIste = false;
                                tedarikciSure = 0;
                                lblTedarikciDurum.Text = "Talep bekliyor...";
                            }
                            break;
                        default:
                            break;
                    }

            }
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            counterPasta++;
            counterTedarik += 2;
            waitHandle.Set();
        }



        private void btnAdetGirPasta1_Click(object sender, EventArgs e)
        {
            try
            {
                pasta1adet = int.Parse(txtPasta1Adeti.Text);

                lblPasta1Uretilecek.Text = pasta1adet.ToString();

                if (pasta1adet > pasta1UretilenAdet)
                {
                    sekerYagIste = true;
                }
            }
            catch (Exception)
            {

            }
        }

        private void btnAdetGirPasta2_Click(object sender, EventArgs e)
        {
            try
            {
                pasta2adet = int.Parse(txtPasta2Adeti.Text);

                lblPasta2Uretilecek.Text = pasta2adet.ToString();

                if (pasta2adet > pasta2UretilenAdet)
                {
                    unSekerIste = true;
                }
            }
            catch (Exception)
            {

            }
        }

        private void btnAdetGirPasta3_Click(object sender, EventArgs e)
        {
            try
            {
                pasta3adet = int.Parse(txtPasta3Adeti.Text);

                lblPasta3Uretilecek.Text = pasta3adet.ToString();


                if (pasta3adet > pasta3UretilenAdet)
                {
                    unYagIste = true;
                }
            }
            catch (Exception)
            {

            }
        }
    }
}

UYGULAMAYI İNDİR