예제 #1
0
        public void DosyaOku(Dikdortgen dikdortgen, Ucgen ucgen, Cember cember, Besgen besgen, Cizgi cizgi, Sekiller sekil)
        {
            ofd.Filter = "text Files (*.txt) | *.txt";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                FileStream   fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
                StreamReader sr = new StreamReader(fs);

                sekil.sekillers.Clear();
                string[] veriler = new string[10];


                string veri = sr.ReadLine();
                while (veri != null)
                {
                    veriler = veri.Split(' ');

                    if (veriler[0] == "Dikdortgen")
                    {
                        dikdortgen           = new Dikdortgen("Dikdortgen", Convert.ToInt16(veriler[2]), Convert.ToInt16(veriler[3]), new Pen(System.Drawing.Color.FromArgb(((int)(((byte)(Convert.ToInt16(veriler[6]))))), ((int)(((byte)(Convert.ToInt16(veriler[7]))))), ((int)(((byte)(Convert.ToInt16(veriler[8])))))), Convert.ToInt16(veriler[9])));
                        dikdortgen.Genislik  = Convert.ToInt16(veriler[4]);
                        dikdortgen.Yukseklik = Convert.ToInt16(veriler[5]);
                        sekil.sekillers.Add(dikdortgen);
                    }
                    else if (veriler[0] == "Ucgen")
                    {
                        ucgen = new Ucgen("Ucgen", Convert.ToInt16(veriler[2]), Convert.ToInt16(veriler[3]), new Pen(System.Drawing.Color.FromArgb(((int)(((byte)(Convert.ToInt16(veriler[8]))))), ((int)(((byte)(Convert.ToInt16(veriler[9]))))), ((int)(((byte)(Convert.ToInt16(veriler[10])))))), Convert.ToInt16(veriler[11])));
                        ucgen.Guncelle(Convert.ToInt16(veriler[4]), Convert.ToInt16(veriler[5]));
                        ucgen.points = ucgen.NoktaGetir();
                        sekil.sekillers.Add(ucgen);
                    }
                    else if (veriler[0] == "Cember")
                    {
                        cember           = new Cember("Cember", Convert.ToInt16(veriler[2]), Convert.ToInt16(veriler[3]), new Pen(System.Drawing.Color.FromArgb(((int)(((byte)(Convert.ToInt16(veriler[6]))))), ((int)(((byte)(Convert.ToInt16(veriler[7]))))), ((int)(((byte)(Convert.ToInt16(veriler[8])))))), Convert.ToInt16(veriler[9])));
                        cember.Genislik  = Convert.ToInt16(veriler[4]);
                        cember.Yukseklik = Convert.ToInt16(veriler[5]);
                        sekil.sekillers.Add(cember);
                    }
                    else if (veriler[0] == "Besgen")
                    {
                        besgen = new Besgen("Besgen", Convert.ToInt16(veriler[5]), Convert.ToInt16(veriler[2]), new Pen(System.Drawing.Color.FromArgb(((int)(((byte)(Convert.ToInt16(veriler[6]))))), ((int)(((byte)(Convert.ToInt16(veriler[7]))))), ((int)(((byte)(Convert.ToInt16(veriler[8])))))), Convert.ToInt16(veriler[9])));
                        besgen.Guncelle(Convert.ToInt16(veriler[3]), Convert.ToInt16(veriler[4]));
                        besgen.points = besgen.NoktaGetir();
                        sekil.sekillers.Add(besgen);
                    }
                    else if (veriler[0] == "Cizgi")
                    {
                        cizgi = new Cizgi("Cizgi", Convert.ToInt16(veriler[2]), Convert.ToInt16(veriler[3]), new Pen(System.Drawing.Color.FromArgb(((int)(((byte)(Convert.ToInt16(veriler[6]))))), ((int)(((byte)(Convert.ToInt16(veriler[7]))))), ((int)(((byte)(Convert.ToInt16(veriler[8])))))), Convert.ToInt16(veriler[9])));
                        cizgi.Guncelle(Convert.ToInt16(veriler[4]), Convert.ToInt16(veriler[5]));
                        cizgi.points = cizgi.NoktaGetir();
                        sekil.sekillers.Add(cizgi);
                    }

                    veri = sr.ReadLine();
                }

                sr.Close();
                fs.Close();
            }
        }
예제 #2
0
        public void DosyaYaz(Dikdortgen dikdortgen, Ucgen ucgen, Cember cember, Besgen besgen, Cizgi cizgi, List <Sekiller> sekiller)
        {
            sfd.InitialDirectory = @"./";
            sfd.Filter           = "text Files (*.txt) | *.txt";
            sfd.DefaultExt       = "txt";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                Stream       fs = sfd.OpenFile();
                StreamWriter sw = new StreamWriter(fs);
                try
                {
                    foreach (var item in sekiller)
                    {
                        if (item.sekilAd == "Dikdortgen")
                        {
                            sw.WriteLine(item.sekilAd + " : " + item.BaslaX + " " + item.BaslaY + " " + item.Genislik + " " + item.Yukseklik + " " + item.Kalem.Color.R + " " + item.Kalem.Color.G + " " + item.Kalem.Color.B + " " + item.Kalem.Width);
                        }
                        else if (item.sekilAd == "Ucgen")
                        {
                            sw.WriteLine(item.sekilAd + " : " + item.points[0].X + " " + item.points[0].Y + " " + item.points[1].X + " " + item.points[1].Y + " " + item.points[2].X + " " + item.points[2].Y + " " + item.Kalem.Color.R + " " + item.Kalem.Color.G + " " + item.Kalem.Color.B + " " + item.Kalem.Width);
                        }
                        else if (item.sekilAd == "Cember")
                        {
                            sw.WriteLine(item.sekilAd + " : " + item.BaslaX + " " + item.BaslaY + " " + item.Genislik + " " + item.Yukseklik + " " + item.Kalem.Color.R + " " + item.Kalem.Color.G + " " + item.Kalem.Color.B + " " + item.Kalem.Width);
                        }
                        else if (item.sekilAd == "Besgen")
                        {
                            sw.WriteLine(item.sekilAd + " : " + item.points[0].Y + " " + item.points[1].X + " " + item.points[2].Y + " " + item.points[4].X + " " + item.Kalem.Color.R + " " + item.Kalem.Color.G + " " + item.Kalem.Color.B + " " + item.Kalem.Width);
                        }
                        else if (item.sekilAd == "Cizgi")
                        {
                            sw.WriteLine(item.sekilAd + " : " + item.points[0].X + " " + item.points[0].Y + " " + item.points[1].X + " " + item.points[1].Y + " " + item.Kalem.Color.R + " " + item.Kalem.Color.G + " " + item.Kalem.Color.B + " " + item.Kalem.Width);
                        }
                    }
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message, "Uyarı");
                }

                sw.Close();
                fs.Close();
            }
        }
예제 #3
0
        private void Cizim_Alani_MouseDown(object sender, MouseEventArgs e)
        {
            X           = e.X;
            Y           = e.Y;
            isMouseDown = true;
            Color renk = pb_RenkSecim.BackColor;
            int   boyut;

            try
            {
                boyut = Convert.ToInt16(comboBox1.Text);
                pen   = new Pen(renk, boyut);
            }
            catch (Exception)
            {
                MessageBox.Show("Boyut olarak tam sayı giriniz, ondalıklı sayılar desteklenmemektedir.", "Uyarı");
                isMouseDown = false;
            }

            if (dikSecilimi)
            {
                dikdortgen = new Dikdortgen("Dikdortgen", X, Y, pen);
            }
            else if (kalemSecilimi)
            {
                cizgi = new Cizgi("Cizgi", X, Y, pen);
            }
            else if (ucgenSecilimi)
            {
                ucgen = new Ucgen("Ucgen", X, Y, pen);
            }
            else if (cemberSecilimi)
            {
                cember = new Cember("Cember", X, Y, pen);
            }
            else if (besgenSecilimi)
            {
                besgen = new Besgen("Besgen", X, Y, pen);
            }
            else if (selSecilimi)
            {
                if (sekil.sekillers.Count > 0)
                {
                    for (int i = sekil.sekillers.Count - 1; i >= 0; i--)
                    {
                        /*Sekil koordinatlarinin icerisine tiklanip tiklanmadigi kontrol ediliyor.
                         * e.X ve e.Y' ye 10 eklenmesi veya cikarilmasi secme isleminin c*k hassas olmamasini istedigimiz icindir.
                         */
                        if (e.X + 10 > sekil.sekillers[i].BaslaX && e.X - 10 <= sekil.sekillers[i].BaslaX + sekil.sekillers[i].Genislik && e.Y + 10 >= sekil.sekillers[i].BaslaY && e.Y - 10 <= sekil.sekillers[i].BaslaY + sekil.sekillers[i].Yukseklik)
                        {
                            secimDogrumu = true;
                            secim        = new Secim(sekil.sekillers[i].BaslaX - 20, sekil.sekillers[i].BaslaY - 20, sekil.sekillers[i].Genislik, sekil.sekillers[i].Yukseklik, secimKalem);
                            foreach (var item in sekil.sekillers)
                            {
                                if (item == sekil.sekillers[i])
                                {
                                    item.Secilmismi = true;
                                }
                                else
                                {
                                    item.Secilmismi = false;
                                }
                            }
                            break;
                        }
                        else
                        {
                            secimDogrumu = false;
                        }
                    }
                }
                else
                {
                    secimDogrumu = false;
                }
            }
            Refresh();
        }