<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=31&amp;t=2609&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-03-22T19:03:47+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=31&amp;t=2609&amp;mode</id>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-03-22T19:03:47+01:00</updated>
<published>2013-03-22T19:03:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31414#p31414</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31414#p31414"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31414#p31414"><![CDATA[
W myśl wyroku który został na mnie nałożony zamieszczam kod <br /><br />[syntax=csharp]<br />using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Linq;<br />using System.Text;<br />using System.Threading.Tasks;<br />using System.Windows.Forms;<br />using System.Drawing.Drawing2D;<br /><br />namespace LosowaniePolozeniaFigur_Malecki37298<br />{<br />    public partial class Form1 : Form<br />    {<br />        static Form1 hForm1;                            // Deklaracja do przechowywania referencji do formularza<br />        static Graphics PlanszaGraf;                    // Deklaracja dla obiektu powierzchni graficznej<br />        static Tpunkt[] TFG;                            // Tablica do ewidencji obiektów graficznych<br />        const int Margines = 15;                        // Ustalenie marginesu dla powierzchni graficznej<br />        const int LiczbaFigur = 7;                      // Zmienna z liczbą elementów w programie<br />        public Form1()<br />        {<br />            InitializeComponent();<br />            // Zwymiarowanie formularza<br />            this.Left = 10;<br />            this.Top = 10;  <br />            this.Width = 600;<br />            this.Height = 410;<br />            // Zwymiarowanie planszy graficznej ustawienie stylu oraz koloru planszy<br />            mm_imgPlansza.Width = this.Width - 25 - mm_imgPlansza.Left;<br />            mm_imgPlansza.Height = this.Height - 45 - mm_imgPlansza.Top;<br />            mm_imgPlansza.BackColor = Color.Beige;<br />            mm_imgPlansza.BorderStyle = BorderStyle.Fixed3D;<br />            // Wylaczenie klawiszy<br />            mm_btnPrerzesuniecie.Enabled = false;<br />            mm_btnLosujNowePolozenie.Enabled = false;<br />            // Utworzenie obiektu graficznego planszy graficznej<br />            PlanszaGraf = mm_imgPlansza.CreateGraphics();<br />            // Wypełnienie kontrolki listboxview  nazwami figur<br />            mm_chckboxWyborFigur.Items.Add(&quot;Punkt&quot;);<br />            mm_chckboxWyborFigur.Items.Add(&quot;Kwadrat&quot;);<br />            mm_chckboxWyborFigur.Items.Add(&quot;Prostokąt&quot;);<br />            mm_chckboxWyborFigur.Items.Add(&quot;Linia&quot;);<br />            mm_chckboxWyborFigur.Items.Add(&quot;Okrąg&quot;);<br />            mm_chckboxWyborFigur.Items.Add(&quot;Elipsa&quot;);<br />            mm_chckboxWyborFigur.Items.Add(&quot;Trójkąt&quot;);<br />            // Zapamiętanie referencji do egzemplarza formularza<br />            hForm1 = this;<br />        }<br />        // Klasy klasy Tpunkt, klasa ta będzie klasą głowną dla klas pochodnych<br />        public class Tpunkt<br />        {<br />            // Deklaracja pól klasy (zmienne klasy)<br />            public int X;                               // zmienna do przechowywania pozycji w osi X<br />            public int Y;                               // zmienna do przechowywania pozycji w osi Y<br />            public Color Kolor;                         // zmienna do przechowywania koloru dla figury<br />            public DashStyle RodzajLinii;               // zmienna do przechowywania rodzaju linii np dash, dot, itp.<br />            public int Grubosc;                         // zmienna do przechowywania grubości linii dla figury<br />            public bool Widoczny;                       // zmienna do przechowywania informacji o tym czy obiekt ma być widzoczny czy nie<br />            const int RozmiarPunktu = 7;                // zmienna do przechowywania wielkości figury<br />            // ******************************************************************************** konstruktory<br />            // Deklaracja konstruktorów które będą wywoływane automatycznie przy tworzeniu egzemplarza klasy<br />            public Tpunkt()<br />            {<br />                this.X = 0;<br />                this.Y = 0;<br />                Kolor = Color.Black;<br />                RodzajLinii = DashStyle.Solid;<br />                Grubosc = 1;<br />                Widoczny = false;<br />            }<br />            public Tpunkt(int x, int y)<br />            {<br />                this.X = x;<br />                this.Y = y;<br />                Kolor = Color.Black;<br />                RodzajLinii = DashStyle.Solid;<br />                Grubosc = 1;<br />                Widoczny = false;<br />            }<br />            public Tpunkt(int x, int y, Color Kolor, DashStyle RodzajLinii, int Grubosc)<br />            {<br />                X = x;<br />                Y = y;<br />                this.Kolor = Kolor;<br />                this.RodzajLinii = RodzajLinii;<br />                this.Grubosc = Grubosc;<br />                Widoczny = false;<br />            }<br />            // ********************************************************************************* Metody<br />            // deklaracje metod<br />            // Metoda do ustawienia współrzędnych dla figury<br />            public virtual void UstawXY(int x, int y)<br />            {<br />                this.X = x;<br />                this.Y = y;<br />            }<br />            // Metoda do ustawienia wyglądu figury<br />            public void FormatujFG(Color Kolor, DashStyle RodzajLinii, int Grubosc)<br />            {<br />                this.Kolor = Kolor;                         <br />                this.RodzajLinii = RodzajLinii;             <br />                this.Grubosc = Grubosc;<br />            }<br />            // Metoda służąca wyrysowaniu figury na formie graficznej (dla różnych figur jest inna(użyty polimorfizm))<br />            public virtual void Wykresl()<br />            {<br />                SolidBrush Pedzel = new SolidBrush(this.Kolor);         // Powołanie do życia obiektu pióro który będzie służył do rysowania<br />                // Rysowanie figury<br />                PlanszaGraf.FillEllipse(Pedzel, X - RozmiarPunktu / 2, Y - RozmiarPunktu / 2, RozmiarPunktu, RozmiarPunktu);<br />                // ustawiamy że figura ma być widoczna<br />                this.Widoczny = true;<br />                // zwalniamy obiekt<br />                Pedzel.Dispose();<br />            }<br />            // Metoda służąca skasowania figury na formie graficznej (dla różnych figur jest inna(użyty polimorfizm))<br />            public virtual void Wymaz()<br />            {<br />                // Sprawdzamy czy obiekt jest widoczny na formie<br />                if (this.Widoczny)<br />                {<br />                    // Rysujemy figurę ale w kolrze tła (czyli kasujemy ją) <br />                    SolidBrush Pedzel = new SolidBrush(hForm1.mm_imgPlansza.BackColor);<br />                    PlanszaGraf.FillEllipse(Pedzel, X - RozmiarPunktu / 2, Y - RozmiarPunktu / 2, RozmiarPunktu, RozmiarPunktu);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br /><br />        // j.w.<br />        public class Tkwadrat : Tpunkt<br />        {<br />            const int RozmiarKwadratu = 7;<br /><br />            public Tkwadrat(int x, int y)<br />                : base(x, y)<br />            {<br />            }<br /><br />            public override void UstawXY(int x, int y)<br />            {<br />                base.UstawXY(x,y);<br />            }<br />            public override void Wykresl()<br />            {<br />                SolidBrush Pedzel = new SolidBrush(this.Kolor);<br />                PlanszaGraf.FillRectangle(Pedzel, X - RozmiarKwadratu / 2, Y - RozmiarKwadratu / 2, RozmiarKwadratu, RozmiarKwadratu);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaz()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    SolidBrush Pedzel = new SolidBrush(hForm1.mm_imgPlansza.BackColor);<br />                    PlanszaGraf.FillRectangle(Pedzel, X - RozmiarKwadratu / 2, Y - RozmiarKwadratu / 2, RozmiarKwadratu, RozmiarKwadratu);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        public class Tprostokat : Tpunkt<br />        {<br />            const int RozmiarProstokata = 7;<br /><br />            public Tprostokat(int x, int y)<br />                : base(x, y)<br />            {<br />            }<br /><br />            public override void UstawXY(int x, int y)<br />            {<br />                base.UstawXY(x, y);<br />            }<br />            public override void Wykresl()<br />            {<br />                SolidBrush Pedzel = new SolidBrush(this.Kolor);<br />                PlanszaGraf.FillRectangle(Pedzel, X - RozmiarProstokata / 2, Y - RozmiarProstokata / 2, RozmiarProstokata*2, RozmiarProstokata);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaz()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    SolidBrush Pedzel = new SolidBrush(hForm1.mm_imgPlansza.BackColor);<br />                    PlanszaGraf.FillRectangle(Pedzel, X - RozmiarProstokata / 2, Y - RozmiarProstokata / 2, RozmiarProstokata*2, RozmiarProstokata);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        public class TLinia : Tpunkt<br />        {<br />            const int RozmiarLinii = 20;<br /><br />            public TLinia(int x, int y)<br />                : base(x, y)<br />            {<br />            }<br /><br />            public override void UstawXY(int x, int y)<br />            {<br />                base.UstawXY(x, y);<br />            }<br />            public override void Wykresl()<br />            {<br />                Pen Pedzel = new Pen(this.Kolor,this.Grubosc);<br />                PlanszaGraf.DrawLine(Pedzel, (float)(X - RozmiarLinii), (float)(Y - RozmiarLinii), (float)(X + RozmiarLinii), (float)(Y + RozmiarLinii));<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaz()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    Pen Pedzel = new Pen(hForm1.mm_imgPlansza.BackColor,this.Grubosc);<br />                    PlanszaGraf.DrawLine(Pedzel, (float)(X - RozmiarLinii), (float)(Y - RozmiarLinii), (float)(X+RozmiarLinii), (float)(Y+RozmiarLinii));<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        public class TOkrag : Tpunkt<br />        {<br />            const int RozmiarOkregu = 20;<br /><br />            public TOkrag(int x, int y)<br />                : base(x, y)<br />            {<br />            }<br /><br />            public override void UstawXY(int x, int y)<br />            {<br />                base.UstawXY(x, y);<br />            }<br />            public override void Wykresl()<br />            {<br />                Pen Pedzel = new Pen(this.Kolor,this.Grubosc);<br />                PlanszaGraf.DrawEllipse(Pedzel, X - RozmiarOkregu, Y - RozmiarOkregu, RozmiarOkregu, RozmiarOkregu);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaz()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    Pen Pedzel = new Pen(hForm1.mm_imgPlansza.BackColor, this.Grubosc);<br />                    PlanszaGraf.DrawEllipse(Pedzel, X - RozmiarOkregu, Y - RozmiarOkregu, RozmiarOkregu, RozmiarOkregu);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        public class TElipsa : Tpunkt<br />        {<br />            const int RozmiarElipsy = 20;<br /><br />            public TElipsa(int x, int y)<br />                : base(x, y)<br />            {<br />            }<br /><br />            public override void UstawXY(int x, int y)<br />            {<br />                base.UstawXY(x, y);<br />            }<br />            public override void Wykresl()<br />            {<br />                Pen Pedzel = new Pen(this.Kolor, this.Grubosc);<br />                PlanszaGraf.DrawEllipse(Pedzel, X - RozmiarElipsy, Y - RozmiarElipsy, RozmiarElipsy, RozmiarElipsy*2);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaz()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    Pen Pedzel = new Pen(hForm1.mm_imgPlansza.BackColor, this.Grubosc);<br />                    PlanszaGraf.DrawEllipse(Pedzel, X - RozmiarElipsy, Y - RozmiarElipsy, RozmiarElipsy, RozmiarElipsy*2);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        public class TTrojkat : Tpunkt<br />        {<br />            const int RozmiarTrojkata = 10;<br /><br />            public TTrojkat(int x, int y)<br />                : base(x, y)<br />            {<br />            }<br /><br />            public override void UstawXY(int x, int y)<br />            {<br />                base.UstawXY(x, y);<br />            }<br />            public override void Wykresl()<br />            {<br />                Pen Pedzel = new Pen(this.Kolor, this.Grubosc);<br />                PlanszaGraf.DrawLine(Pedzel, X + RozmiarTrojkata / 2, Y, X, Y + RozmiarTrojkata);<br />                PlanszaGraf.DrawLine(Pedzel, X, Y + RozmiarTrojkata, X + RozmiarTrojkata, Y + RozmiarTrojkata);<br />                PlanszaGraf.DrawLine(Pedzel, X + RozmiarTrojkata, Y + RozmiarTrojkata, X + RozmiarTrojkata / 2, Y);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaz()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    Pen Pedzel = new Pen(hForm1.mm_imgPlansza.BackColor, this.Grubosc);<br />                    PlanszaGraf.DrawLine(Pedzel, X + RozmiarTrojkata / 2, Y, X, Y + RozmiarTrojkata);<br />                    PlanszaGraf.DrawLine(Pedzel, X, Y + RozmiarTrojkata, X + RozmiarTrojkata, Y + RozmiarTrojkata);<br />                    PlanszaGraf.DrawLine(Pedzel, X + RozmiarTrojkata, Y + RozmiarTrojkata, X + RozmiarTrojkata / 2, Y);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        private void mm_btnStart_Click(object sender, EventArgs e)<br />        {<br />            // sprawdzamy czy Listcheckbox jest zaznaczona jakakolwiek figura <br />            // jeżeli nie to wyświetlamy komunikat i wychodzimy z obsługi przycisku <br />            if (mm_chckboxWyborFigur.SelectedItems.Count == 0)<br />            {<br />                MessageBox.Show(&quot;Zaznacz figury które mają być losowane !!! &quot;, &quot;Ostrzeżenie&quot;, MessageBoxButtons.OK, MessageBoxIcon.Error);<br />                return;<br />            }<br />            /* zmienna do przechowywania ilości figur które będą wyświetlone<br />             * można by zastosować kontrolkę textbox ale komu by się chciało sprawdzać<br />             * czy wpisane dane są poprawne i jeszcze trzeba by męczyć jakiegoś ErrorProvidera<br />             */<br />             int N = (int)mm_cntIleFigur.Value;<br />            // Definiujemy tablicę przechowującą figury <br />            TFG = new Tpunkt[N];<br />            // Pobieramy wielkość powierzchni graficznej<br />            int Xmax = hForm1.mm_imgPlansza.Width;<br />            int Ymax = hForm1.mm_imgPlansza.Height;<br />            // Powołujemy do życia obiekt Random do generowania liczb pseudolosowych<br />            Random LiczbaLosowa = new Random();<br />            // lokalne zmienne pomocnicze<br />            int k, Xp, Yp;<br />            Color Kolor;<br />            // Pętla do wypełnienia tablicy obiektami figur na podstawie parametrów popranych z kontrolek formularza<br />            for (int i = 0; i &lt; N; i++)<br />            {<br />                // Pętla do sprawdzenia czy wylosowana figura jest zaznaczona w kontrolce<br />                do{<br />                    k = LiczbaLosowa.Next(1, LiczbaFigur + 1);<br />                } while(mm_chckboxWyborFigur.GetItemChecked(k-1) != true);<br />                // Wygenerowanie losowej pozycji dla figury<br />                Xp = LiczbaLosowa.Next(Margines, Xmax - Margines);<br />                Yp = LiczbaLosowa.Next(Margines, Ymax - Margines);<br />                // Wygenerowanie losowoego koloru figury<br />                Kolor = Color.FromArgb(LiczbaLosowa.Next(0, 255), LiczbaLosowa.Next(0, 255), LiczbaLosowa.Next(0, 255));<br />                // utworzenie egzemplarza figury geometrycznej o numerze k<br />                switch (k)<br />                {<br />                    case 1:<br />                        TFG[i] = new Tpunkt(Xp, Yp);                    // Pozycja figury<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Solid, 1);   // wygląd figury<br />                        TFG[i].Wykresl();                               // narysowanie figury na powierzchni graficznej<br />                        break;<br />                    case 2:<br />                        TFG[i] = new Tkwadrat(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 1);<br />                        TFG[i].Wykresl();<br />                        break;<br />                    case 3:<br />                        TFG[i] = new Tprostokat(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 1);<br />                        TFG[i].Wykresl();<br />                        break;<br />                    case 4:<br />                        TFG[i] = new TLinia(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 1);<br />                        TFG[i].Wykresl();<br />                        break;<br />                    case 5:<br />                        TFG[i] = new TOkrag(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 5);<br />                        TFG[i].Wykresl();<br />                        break;<br />                    case 6:<br />                        TFG[i] = new TElipsa(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 3);<br />                        TFG[i].Wykresl();<br />                        break;<br />                    case 7:<br />                        TFG[i] = new TTrojkat(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 1);<br />                        TFG[i].Wykresl();<br />                        break;<br />                }<br /><br />            }<br />            // Ustawienie dostępności kontrolek na formularzu<br />            mm_cntIleFigur.Enabled = false;                     // Ilość figur<br />            mm_btnStart.Enabled = false;                        // przycisk start<br />            mm_chckboxWyborFigur.Enabled = false;               // wybór figur<br />            mm_btnPrerzesuniecie.Enabled = true;                // Przycisk przesunięcia<br />            mm_btnLosujNowePolozenie.Enabled = true;            // przycisk losowania nowych pozycji dla figur<br /><br />        }<br />        private void mm_btnPrerzesuniecie_Click(object sender, EventArgs e)<br />        {<br />            int i, N;<br />            N = TFG.Length;<br />            int Xmax = hForm1.mm_imgPlansza.Width;<br />            int Ymax = hForm1.mm_imgPlansza.Height;<br />            Random LiczbaLosowa = new Random();<br />            int Xp, Yp;<br />            for (i = 0; i &lt; N; i++)<br />            {<br />                Xp = LiczbaLosowa.Next(Margines, Xmax - Margines);<br />                Yp = LiczbaLosowa.Next(Margines, Ymax - Margines);<br />                TFG[i].Wymaz();<br />                TFG[i].UstawXY(Xp, Yp);<br />                TFG[i].Wykresl();<br />            }<br />        }<br />        // Metoda obsługi przycisku Stop która zamyka formularz<br />        private void mm_btnStop_Click(object sender, EventArgs e)<br />        {<br />            this.Close();<br />        }<br /><br />        private void mm_btnLosujNowePolozenie_Click(object sender, EventArgs e)<br />        {<br />            int i, N;<br />            Color Kolor;<br />            N = TFG.Length;<br />            for (i = 0; i &lt; N; i++)<br />            {<br />                TFG[i].Wymaz();<br />            }<br />            int Xp, Yp, Xmax, Ymax;<br />            Xmax = hForm1.mm_imgPlansza.Width;<br />            Ymax = hForm1.mm_imgPlansza.Height;<br />            Random LiczbaLosowa = new Random();<br />            for (i = 0; i &lt; N; i++)<br />            {<br />                Xp = LiczbaLosowa.Next(Margines, Xmax - Margines);<br />                Yp = LiczbaLosowa.Next(Margines, Ymax - Margines);<br />                Kolor = Color.FromArgb(LiczbaLosowa.Next(0, 255), LiczbaLosowa.Next(0, 255), LiczbaLosowa.Next(0, 255));<br />                TFG[i].FormatujFG(Kolor, DashStyle.Solid, TFG[i].Grubosc);<br />                TFG[i].UstawXY(Xp, Yp);<br />                TFG[i].Wykresl();<br />            }<br />        }<br />        // metoda do obsługi zmiany wielkości formularza<br />        private void Form1_Resize(object sender, EventArgs e)<br />        {<br />            // bierząca zmiana wielkości powierzchni graficznej w stosunku do wielkości formularza<br />            mm_imgPlansza.Width = this.Width - 25 - mm_imgPlansza.Left;<br />            mm_imgPlansza.Height = this.Height - 45 - mm_imgPlansza.Top;<br />        }<br />        // Metoda wywoływana po zmianie wielkości formularza<br />        private void Form1_ResizeEnd(object sender, EventArgs e)<br />        {<br />            // Porzucamy powierchnię graficzną i definiujemy ją spowrotem żeby &quot;złapać&quot; nowe wymiary<br />            PlanszaGraf.Dispose();<br />            PlanszaGraf = mm_imgPlansza.CreateGraphics();<br />        }<br />        private void mm_btnOdPoczatku_Click(object sender, EventArgs e)<br />        {<br />            <br />            mm_imgPlansza.Refresh();                        // Wyczyszczenie powierzchni graficznej<br />            // Ustawienie dostępności kontrolek na formularzu<br />            mm_btnLosujNowePolozenie.Enabled = false;<br />            mm_btnPrerzesuniecie.Enabled = false;<br />            mm_btnStart.Enabled = true;<br />            mm_cntIleFigur.Enabled = true;<br />            mm_chckboxWyborFigur.Enabled = true;<br />            // Wyczyszczenie tablicy z obiektami figur<br />            TFG.Initialize();<br />        }<br />        // Metoda obsługi zamkniecia formularza<br />        private void Form1_FormClosing(object sender, FormClosingEventArgs e)<br />        {<br />            if (MessageBox.Show(&quot;Czy napewno chcesz wyjść z aplikacji ?&quot;, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)<br />                e.Cancel = true;<br />        }<br />    }<br />}[/syntax]<br /><br /><br />oraz wersję skomplikowaną programu (.Net 4.5) <a href="http://sdrv.ms/16NGzhn"  class="postlink">Link</a><br /><br />Tym samym mam nadzieję że wypełniłem sentencję wyroku <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 22 mar 2013, o 19:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-03-22T12:47:42+01:00</updated>
<published>2013-03-22T12:47:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31365#p31365</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31365#p31365"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31365#p31365"><![CDATA[
Ufff ....... przynajmniej nie spuchnę jak balonik <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 22 mar 2013, o 12:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-03-22T12:40:49+01:00</updated>
<published>2013-03-22T12:40:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31364#p31364</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31364#p31364"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31364#p31364"><![CDATA[
no dobra niechaj będzie  zmniejszam niniejszym ilość pompek do 10  (binarnie) <br /><img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 mar 2013, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-03-22T10:14:52+01:00</updated>
<published>2013-03-22T10:14:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31345#p31345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31345#p31345"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31345#p31345"><![CDATA[
Przychylam się do prośby kolegi......może zrobić 10 pompek, bo ja też po 4C to bym wyzionął ducha <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 22 mar 2013, o 10:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-03-22T10:05:14+01:00</updated>
<published>2013-03-22T10:05:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31344#p31344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31344#p31344"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31344#p31344"><![CDATA[
Karę przyjmuję z pokorą i dobrowlonie za wyjątkiem punktu trzeciego, w stosunku do którego wnoszę apelację<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 22 mar 2013, o 10:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-03-22T09:57:19+01:00</updated>
<published>2013-03-22T09:57:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31342#p31342</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31342#p31342"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31342#p31342"><![CDATA[
w powyższym zatem przykładzie na mocy nadanego mi prawa w stosunku do kolegi Malutki_27, który dopuścił się obrazy Kolegi Malutki_27 i tym samym złamał zasady regulaminu nakładam karę :<br /><br />1. za złamanie regulaminu   ----  okomentowanie programu <br />2. za obrazę majestatu ---  publiczna prezentacja programu na łamach forum<br />3. w związku z faktem ze nie tyle chodzi o sama obrazę co o majestat  ----  4C pompek <br /><br />Jako powiedziałem .....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 mar 2013, o 09:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2013-03-22T09:33:23+01:00</updated>
<published>2013-03-22T09:33:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31340#p31340</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31340#p31340"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31340#p31340"><![CDATA[
Jak ukarac programiste? Kazac mu napisac dokumentacje. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 22 mar 2013, o 09:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-03-22T09:16:52+01:00</updated>
<published>2013-03-22T09:16:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31334#p31334</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31334#p31334"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31334#p31334"><![CDATA[
Przydało by się umieszczenie komentarzy w programie w ramach samo ukarania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 22 mar 2013, o 09:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-03-22T09:07:58+01:00</updated>
<published>2013-03-22T09:07:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31332#p31332</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31332#p31332"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31332#p31332"><![CDATA[
W takim razie, w myśl regulaminu którego nie ma, za moją wcześniejszą wypowiedź obrażam się sam na siebie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> , i rządam wyciągniecia konsekwencji w stosunku do osoby która mnie obraziła <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 22 mar 2013, o 09:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-03-22T00:16:10+01:00</updated>
<published>2013-03-22T00:16:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31324#p31324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31324#p31324"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31324#p31324"><![CDATA[
Malutki_27, na tym forum nie obrażamy się nawzajem zgodnie z regulaminem, którego nie ma, a zatem nawet sam siebie nie możesz obrażać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... bo jak wiesz naruszasz regulamin, którego nie ma - i wolę nawet nie myśleć co ci za to może grozić <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 mar 2013, o 00:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-03-21T23:49:03+01:00</updated>
<published>2013-03-21T23:49:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31323#p31323</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31323#p31323"/>
<title type="html"><![CDATA[Re: C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31323#p31323"><![CDATA[
No i po temacie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> , tak dla potomnych co za idiota pisząc metodę przysłaniającą wywołuje metodę z klasy bazowej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a jaśniej , to rozchodziło się o taki zapis base.Wymaz();<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 21 mar 2013, o 23:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-03-21T16:11:16+01:00</updated>
<published>2013-03-21T16:11:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31250#p31250</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31250#p31250"/>
<title type="html"><![CDATA[C # - klasy pochodne]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2609&amp;p=31250#p31250"><![CDATA[
Kurcze, normlanie poddaję się z tym &quot;ustrojstwem&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Napisałem sobie taki programik jak poniżej który ma rysować na różne figury. Po wciśnięciu przycisku przesunięcie powinien &quot;zamazać&quot; figury na starej pozycji i wyrysowac je na nowej. W przybliżeniu robi to ale dla kwadratu podczas zamazywania, nie używa kwadratu tylko koło. Mój wniosek jest taki że, metoda wymaż() dla kwadratu nie przysłania metody wymaż() dla punktu.<br /><br />Pytanie brzmi dlaczego ? Co źle robię ?<br /><br />[syntax=csharp]<br />using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Linq;<br />using System.Text;<br />using System.Threading.Tasks;<br />using System.Windows.Forms;<br />using System.Drawing.Drawing2D;<br /><br />namespace LosowaniePolozeniaFigur_Malecki37298<br />{<br />    public partial class Form1 : Form<br />    {<br />        static Form1 hForm1;<br />        static Graphics PlanszaGraf;<br />        static Tpunkt[] TFG;<br />        const int Margines = 10;<br />        const int LiczbaFigur = 2;<br /><br />        public Form1()<br />        {<br />            InitializeComponent();<br />            this.Left = 10;<br />            this.Top = 10;<br />            this.Width = 590;<br />            this.Height = 350;<br />            mm_imgPlansza.BackColor = Color.Beige;<br />            mm_imgPlansza.BorderStyle = BorderStyle.Fixed3D;<br />            PlanszaGraf = mm_imgPlansza.CreateGraphics();<br />            hForm1 = this;<br />        }<br /><br />        public class Tpunkt<br />        {<br />            public int X;<br />            public int Y;<br />            public Color Kolor;<br />            public DashStyle RodzajLinii;<br />            public int Grubosc;<br />            public bool Widoczny;<br />            const int RozmiarPunktu = 10;<br /><br />            public Tpunkt()<br />            {<br />                this.X = 0;<br />                this.Y = 0;<br />                Kolor = Color.Black;<br />                RodzajLinii = DashStyle.Solid;<br />                Grubosc = 1;<br />                Widoczny = false;<br />            }<br />            public Tpunkt(int x, int y)<br />            {<br />                this.X = x;<br />                this.Y = y;<br />                Kolor = Color.Black;<br />                RodzajLinii = DashStyle.Solid;<br />                Grubosc = 1;<br />                Widoczny = false;<br />            }<br />            public Tpunkt(int x, int y, Color Kolor, DashStyle RodzajLinii, int Grubosc)<br />            {<br />                X = x;<br />                Y = y;<br />                this.Kolor = Kolor;<br />                this.RodzajLinii = RodzajLinii;<br />                this.Grubosc = Grubosc;<br />                Widoczny = false;<br />            }<br />            public void UstawXY(int x, int y)<br />            {<br />                this.X = x;<br />                this.Y = y;<br />            }<br />            public void PrzesunDoXY(int x, int y)<br />            {<br />                Wymaż();<br />                UstawXY(x, y);<br />                Wykresl();<br />            }<br />            public void FormatujFG(Color Kolor, DashStyle RodzajLinii, int Grubosc)<br />            {<br />                this.Kolor = Kolor;<br />                this.RodzajLinii = RodzajLinii;<br />                this.Grubosc = Grubosc;<br />            }<br />            public virtual void Wykresl()<br />            {<br />                SolidBrush Pedzel = new SolidBrush(this.Kolor);<br />                PlanszaGraf.FillEllipse(Pedzel, X - RozmiarPunktu / 2, Y - RozmiarPunktu / 2, RozmiarPunktu, RozmiarPunktu);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br /><br /><br /><br /><br />            public virtual void Wymaż()<br />            {<br />                if (this.Widoczny)<br />                {<br />                    SolidBrush Pedzel = new SolidBrush(hForm1.mm_imgPlansza.BackColor);<br />                    PlanszaGraf.FillEllipse(Pedzel, X - RozmiarPunktu / 2, Y - RozmiarPunktu / 2, RozmiarPunktu, RozmiarPunktu);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        public class Tkwadrat : Tpunkt<br />        {<br />            const int RozmiarKwadratu = 20;<br /><br />            public Tkwadrat(int x, int y)<br />            {<br />                this.X = x;<br />                this.Y = y;<br />            }<br /><br />            public override void Wykresl()<br />            {<br />                base.Wykresl();<br />                SolidBrush Pedzel = new SolidBrush(this.Kolor);<br />                PlanszaGraf.FillRectangle(Pedzel, X - RozmiarKwadratu / 2, Y - RozmiarKwadratu / 2, RozmiarKwadratu, RozmiarKwadratu);<br />                this.Widoczny = true;<br />                Pedzel.Dispose();<br />            }<br />            public override void Wymaż() <br />            {<br />                base.Wymaż();<br />                if (this.Widoczny)<br />                {<br />                    SolidBrush Pedzel = new SolidBrush(hForm1.mm_imgPlansza.BackColor);<br />                    PlanszaGraf.FillRectangle(Pedzel, X - RozmiarKwadratu / 2, Y - RozmiarKwadratu / 2, RozmiarKwadratu, RozmiarKwadratu);<br />                    this.Widoczny = false;<br />                    Pedzel.Dispose();<br />                }<br />            }<br />        }<br />        private void mm_btnStart_Click(object sender, EventArgs e)<br />        {<br />            int N = (int)mm_cntIleFigur.Value;<br />            mm_cntIleFigur.Enabled = false;<br />            TFG = new Tpunkt[N];<br />            int Xmax = hForm1.mm_imgPlansza.Width;<br />            int Ymax = hForm1.mm_imgPlansza.Height;<br />            Random LiczbaLosowa = new Random();<br /><br />            int k, Xp, Yp;<br />            Color Kolor;<br /><br />            for (int i = 0; i &lt; N; i++)<br />            {<br />                k = LiczbaLosowa.Next(1, LiczbaFigur + 1); // Generujemy liczbę która odpowiada figurze którą będziemy wstawiać<br />                Xp = LiczbaLosowa.Next(Margines, Xmax - Margines);<br />                Yp = LiczbaLosowa.Next(Margines, Ymax - Margines);<br />                Kolor = Color.FromArgb(LiczbaLosowa.Next(0, 255), LiczbaLosowa.Next(0, 255), LiczbaLosowa.Next(0, 255));<br /><br />                switch (k)<br />                {<br />                    case 1:<br />                        TFG[i] = new Tpunkt(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Solid, 1);<br />                        TFG[i].Wykresl();<br />                        break;<br />                    case 2:<br />                        TFG[i] = new Tkwadrat(Xp, Yp);<br />                        TFG[i].FormatujFG(Kolor, DashStyle.Dash, 3);<br />                        TFG[i].Wykresl();<br />                        break;<br />                }<br /><br />            }<br />            mm_btnStart.Enabled = false;<br /><br />        }<br /><br />        private void mm_btnPrerzesuniecie_Click(object sender, EventArgs e)<br />        {<br />            int i, N;<br />            N = TFG.Length;<br />            int Xmax = hForm1.mm_imgPlansza.Width;<br />            int Ymax = hForm1.mm_imgPlansza.Height;<br />            Random LiczbaLosowa = new Random();<br />            int Xp, Yp;<br />            for (i = 0; i &lt; N; i++)<br />            {<br />                Xp = LiczbaLosowa.Next(Margines, Xmax - Margines);<br />                Yp = LiczbaLosowa.Next(Margines, Ymax - Margines);<br />                TFG[i].Wymaż();<br />                TFG[i].UstawXY(Xp, Yp);<br />                TFG[i].Wykresl();<br />            }<br />        }<br />        private void mm_btnStop_Click(object sender, EventArgs e)<br />        {<br />            this.Close();<br />        }<br />    }<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 21 mar 2013, o 16:11</p><hr />
]]></content>
</entry>
</feed>