public static PuntVorm VanString(string s) { // Formaat: "[vormtype] [verzamelingnummer] [startx] [starty] [eindx] [eindy] [r] [g] [b] [dikte]" PuntVorm resultaat; char[] separators = { ' ' }; string[] parameters = s.Split(separators, StringSplitOptions.RemoveEmptyEntries); if (parameters.Length != 10) { // fout! MessageBox.Show(s, "Unreadable line!"); return null; } try { // Lees verzamelingnummer int geladenVerzamelingNummer = int.Parse(parameters[1]); // Lees startpunt, eindpunt Point geladenStartpunt, geladenEindpunt; int x1, y1, x2, y2; x1 = int.Parse(parameters[2]); y1 = int.Parse(parameters[3]); geladenStartpunt = new Point(x1, y1); x2 = int.Parse(parameters[4]); y2 = int.Parse(parameters[5]); geladenEindpunt = new Point(x2, y2); // Lees kleur int r, g, b; r = int.Parse(parameters[6]); g = int.Parse(parameters[7]); b = int.Parse(parameters[8]); Color kleur = Color.FromArgb(r, g, b); SolidBrush kwast = new SolidBrush(kleur); int geladenDikte = int.Parse(parameters[9]); switch (parameters[0]) { case "Lijn": resultaat = new LijnVorm(kwast, geladenStartpunt, geladenEindpunt, geladenDikte, geladenVerzamelingNummer); break; case "Kader": resultaat = new KaderVorm(kwast, geladenStartpunt, geladenEindpunt, geladenDikte); break; case "Rechthoek": resultaat = new RechthoekVorm(kwast, geladenStartpunt, geladenEindpunt, geladenDikte); break; case "GevuldeEllips": resultaat = new VollipsVorm(kwast, geladenStartpunt, geladenEindpunt, geladenDikte); break; case "Ellips": resultaat = new EllipsVorm(kwast, geladenStartpunt, geladenEindpunt, geladenDikte); break; default: MessageBox.Show(s, "Unreadable line - non-recognised shape!"); resultaat = null; break; } } catch { MessageBox.Show(s, "Onleesbare regel in bestand!"); resultaat = null; } return resultaat; }
public override void MuisLos(SchetsControl s, Point p) { LijnVorm lijn = new LijnVorm(kwast, startpunt, p, s.PenDikte, Verzamelingnummer); s.Schets.Vormen.Add(lijn); lijn.Teken(s.CreateGraphics()); s.Invalidate(); }