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(); }
//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; }
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; }