private void btnStart_Click(object sender, EventArgs e)
        {
            //TPunkt A = new TPunkt(200, 100, Color.Red);
            //A.Wykresl();
            //TOkrag O1 = new TOkrag(100, 50, 30);
            //O1.Wykresl();
            //O1.UstawXY(150, 100);
            //TPunkt Figura = O1;
            //Figura.Wykresl();


            int pj_N;

            if (!int.TryParse(txtLiczbaFigur.Text, out pj_N))
            {
                ERROR.SetError(txtLiczbaFigur, "ERROR: Błąd w zapisie liczności figur");
                return;
            }
            else
            {
                txtLiczbaFigur.Enabled = false;
                ERROR.Dispose();
            }
            if (pj_N <= 0)
            {
                ERROR.SetError(txtLiczbaFigur, "ERROR: Liczba figur musi być > 0");
                return;
            }
            else
            {
                ERROR.Dispose();
            }
            if (chlbFigury.CheckedItems.Count <= 0)
            {
                ERROR.SetError(btnStart, "ERROR: Nie wybrano figury!");
                return;
            }
            else
            {
                ERROR.Dispose();
            }
            btnRandom_los.Enabled = true;
            btnNew_place.Enabled  = true;
            btnStart.Enabled      = false;
            pj_TablicaFigur       = new TPunkt[pj_N];
            pj_IndexTablicyFigur  = 0;
            int[] pj_TablicaWybranychFigur      = new int[chlbFigury.CheckedItems.Count];
            int   pj_IndexTablicyWybranychFigur = 0;

            foreach (object WybranaFigura in chlbFigury.CheckedItems)
            {
                pj_TablicaWybranychFigur[pj_IndexTablicyWybranychFigur++] = chlbFigury.Items.IndexOf(WybranaFigura);
            }

            int       pj_Xp, pj_Yp;
            Color     pj_Kolor;
            int       pj_GruboscLinii;
            DashStyle pj_Dashstyle;
            int       pj_R;
            Random    pj_LiczbaLosowa = new Random();
            int       pj_Xmax         = this.imgPlansza.Width;
            int       pj_Ymax         = this.imgPlansza.Height;

            for (int i = 0; i < pj_TablicaFigur.Length; i++)
            {
                pj_Xp           = pj_LiczbaLosowa.Next(pj_Margines, pj_Xmax - pj_Margines);
                pj_Yp           = pj_LiczbaLosowa.Next(pj_Margines, pj_Ymax - pj_Margines);
                pj_Kolor        = Color.FromArgb(pj_LiczbaLosowa.Next(0, 256), pj_LiczbaLosowa.Next(0, 256), pj_LiczbaLosowa.Next(0, 256));
                pj_GruboscLinii = pj_LiczbaLosowa.Next(1, 10);
                pj_R            = pj_LiczbaLosowa.Next(5, pj_Ymax / 4);
                switch (pj_LiczbaLosowa.Next(1, 5))
                {
                case 1:
                    pj_Dashstyle = DashStyle.Solid;
                    break;

                case 2:
                    pj_Dashstyle = DashStyle.Dot;
                    break;

                case 3:
                    pj_Dashstyle = DashStyle.Dash;
                    break;

                case 4:
                    pj_Dashstyle = DashStyle.DashDot;
                    break;

                case 5:
                    pj_Dashstyle = DashStyle.DashDotDot;
                    break;

                default:
                    pj_Dashstyle = System.Drawing.Drawing2D.DashStyle.Solid;
                    break;
                }
                CheckedListBox.CheckedIndexCollection pj_WybranaFigura = chlbFigury.CheckedIndices;
                switch (pj_WybranaFigura[i % pj_WybranaFigura.Count])
                {
                case 0:
                    pj_TablicaFigur[i] = new TPunkt(pj_Xp, pj_Yp);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt p1 = pj_TablicaFigur[i] as TPunkt;
                    p1.Wykresl();
                    break;

                case 1:
                    pj_TablicaFigur[i] = new TLinia(pj_Xp, pj_Yp);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt l1 = pj_TablicaFigur[i] as TLinia;
                    l1.Wykresl();
                    break;

                case 2:
                    pj_TablicaFigur[i] = new TOkrag(pj_Xp, pj_Yp, pj_R);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt o1 = pj_TablicaFigur[i] as TOkrag;
                    o1.Wykresl();
                    break;

                case 3:
                    pj_TablicaFigur[i] = new TFillOkrag(pj_Xp, pj_Yp, pj_R);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt fo1 = pj_TablicaFigur[i] as TFillOkrag;
                    fo1.Wykresl();
                    break;

                case 4:
                    pj_TablicaFigur[i] = new TProstokat(pj_Xp, pj_Yp);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt pr1 = pj_TablicaFigur[i] as TProstokat;
                    pr1.Wykresl();
                    break;

                case 5:
                    pj_TablicaFigur[i] = new TKwadrat(pj_Xp, pj_Yp);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt k1 = pj_TablicaFigur[i] as TKwadrat;
                    k1.Wykresl();
                    break;

                case 6:
                    pj_TablicaFigur[i] = new Ttrojkat(pj_Xp, pj_Yp);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt t1 = pj_TablicaFigur[i] as Ttrojkat;
                    t1.Wykresl();
                    break;

                case 7:
                    pj_TablicaFigur[i] = new TtrojkatProstokatny(pj_Xp, pj_Yp);
                    pj_TablicaFigur[i].UstawieniaAtrybutowGraficznych(pj_Kolor, pj_GruboscLinii, pj_Dashstyle);
                    TPunkt tp1 = pj_TablicaFigur[i] as TtrojkatProstokatny;
                    tp1.Wykresl();
                    break;

                default:
                    ERROR.SetError(btnStart, "ERROR: nierozpoznana figura geometryczna");
                    return;
                }
            }
        }