コード例 #1
0
 public SchetsControl()
 {
     this.BorderStyle = BorderStyle.Fixed3D;
     this.schets = new Schets();
     this.Paint += this.teken;
     this.Resize += this.veranderAfmeting;
     this.veranderAfmeting(null, null);
     this.penkleur = Color.Black;
     this.acties = new Acties();
 }
コード例 #2
0
        //Functie die een schets inlaad
        public bool OpenSchets(ISchetsTool[] tools)
        {
            Size filebitmapsize;
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Schetsen|*.txt";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                acties = ActiesFile.LaadActies(ofd.FileName, tools, out filebitmapsize);
                schets.VeranderAfmeting(filebitmapsize);
                RedrawFromActions();
                return true;
            }
            return false;
        }
コード例 #3
0
ファイル: ActiesFile.cs プロジェクト: tennapel/schetseditor
        public static Acties LaadActies(string filename, ISchetsTool[] tools, out Size fbs)
        {
            ISchetsTool huidigetool;
            huidigetool = tools[0];
            string line;
            string[] size;
            int width, height;
            Acties a = new Acties();

            StreamReader r = new StreamReader(filename);

            //Eerste regel is bitmapopvang, lees uit
            size = r.ReadLine().Split(',');
            int.TryParse(size[0], out width);
            int.TryParse(size[1], out height);
            fbs = new Size(width, height);

            while((line = r.ReadLine()) != null)
            {
                int argb;
                Color kleur;
                Point p;

                string[] parameters = line.Split(' ');
                //Bindt d.m.v. het checken van de ToString de juiste tool aan het element
                foreach(ISchetsTool tool in tools)
                    if (tool.ToString() == parameters[0])
                        huidigetool = tool;

                //Parse de kleur, val terug op zwart als het misgaat
                if (int.TryParse(parameters[1], out argb))
                    kleur = Color.FromArgb(argb);
                else
                    kleur = Color.Black;

                //Afhankelijk van het type moeten andere eigenschappenvolgordes worden aangehouden
                switch(parameters[0])
                {
                    case "tekst":
                        p = LeesPunt(parameters[3]);
                        a.AddElement(huidigetool, p, kleur);
                        a.AddTekst(parameters[2]);
                        break;
                    case "pen":
                        p = LeesPunt(parameters[2]);
                        a.AddElement(huidigetool, p, kleur);
                        a.AddEind(LeesPunt(parameters[3]));
                        for (int i = 4; i < parameters.Length; i++)
                        {
                            a.AddBegin(LeesPunt(parameters[i]));
                            i++;
                            a.AddEind(LeesPunt(parameters[i]));
                        }
                        break;
                    default:
                        p = LeesPunt(parameters[2]);
                        a.AddElement(huidigetool, p, kleur);
                        a.AddEind(LeesPunt(parameters[3]));
                        break;
                }
            }
            r.Close();
            return a;
        }