Takto chápanému druhu objektů se říká TŘÍDA.

Podobné dokumenty
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Pokročilá práce s proměnnými

Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Podmíněné vykonávání

Objekty jako zapozdření dat. začneme vytvářet vlastní objekty a třídy

Nejzajímavější jsou události MouseDown a KeyDown.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Indexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Cvičné příklady Hodina 2

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Programování v jazyku C# II. 4.kapitola

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

Obsah přednášky. GDI+ Tvorba vlastních komponent Vlastní kreslení 1/36

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Klíčové pojmy: Události, handlery, třída Graphics, pera, stětce, kreslení vyplněných a nevyplněných objektů.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

BARVY. Příkaz barva. Barvy TrueColor. Se objeví dialogové okno

Předdefinované dialogy

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ]

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

POLE. - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd

1. Nastavení dokumentu

Co je to POLYGRAFIE ICT

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Tematický celek 03 - Cvičné příklady

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Cvičení 7: Delphi objekty CheckedBox, Radio- Button, EditBox

Programování II. Návrh programu I 2018/19

15. Projekt Kalkulačka

Téma: Práce se základními objekty, výplní a obrysem

UŽIVATELSKÉ ROZHRANÍ WINDOWS-FORM DESKTOPOVÉ APLIKACE - CVIČENÍ

COREL PHOTO-PAINT POUŽITÍ MASEK. Lenka Bednaříková

Cvičné příklady Hodina 8 Cvičný 1

Uživatelská příručka Autor: Martin Fiala

Formátování pomocí stylů

Konvertor diakritiky 3. Instalace

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

1. Programovací jazyk C# a vývojové prostředí

Aplikace pro vykreslování grafů elementárních funkcí

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT


Výčtový typ strana 67

Středoškolská odborná činnost. Obor SOČ: 1. Matematika a statistika GRAFY FUNKCÍ

Střední průmyslová škola strojnická Vsetín. Předmět Druh učebního materiálu Tvorba a editace textu v dokumentu

Evropská obchodní akademie, Děčín I, Komenského náměstí 2, příspěvková organizace IČ tel

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Komponenty v.net. Obsah přednášky

9 Úprava maker Příklad 4 Word 2007/ VBA

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Projekt Obrázek strana 135

2D-skicování Tato část poskytuje shrnutí 2D-skicování, které je nezbytné ke tvorbě modelů Solid Works.

Microsoft Office PowerPoint 2003

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

2. popis prostředí, nastavení pracovní plochy

Programátorská dokumentace

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Kreslení úseček a křivek

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 32 ODKAZY A TEXTY]

Větvení programů příkaz IF

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Jazyk C# (seminář 7)

17. Projekt Trojúhelníky

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

SolidWorks. Otevření skici. Mřížka. Režimy skicování. Režim klik-klik. Režim klik-táhnout. Skica

Tvorba interaktivních dokumentů v Maple

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Reliance 3 design OBSAH

Digitální učební materiál

13 Barvy a úpravy rastrového

Správa souborů soubor, stromová struktura. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

PROGRAMOVÁNÍ PRO MS WINDOWS 1

IRAE 07/08 Přednáška č. 1

Jazyk C# a platforma.net

Příloha 6. Palety nástrojů

Vektorizace obrázků. Co se naučíte. Vítá vás aplikace CorelDRAW, komplexní profesionální program pro grafický návrh a práci s vektorovou grafikou.

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Parametrické modelování těles. Autodesk INVENTOR. Ing. Richard Strnka, 2012

Transkript:

Objekty a třídy

Každý objekt obsahuje: vlastnosti události metody např. Panel z předchozích příkladů: vlastnost BorderStyle událost Paint metoda Refresh Neplatí co objekt, to originál. V programu se často vyskytuje více objektů stejného druhu. Více textových polí, více popisků, více tlačítek Každé tlačítko může mít jiné rozměry, jiný text, jinou barvu, ale všechna tlačítka mají stejné vlastnosti (Text, ReadOnly, BackColor ), události (TextChanged, MouseHover ) a metody (Cut, Copy, Show, Refresh ). Takto chápanému druhu objektů se říká TŘÍDA.

Existují třídy textových polí, třídy popisků, třídy panelů, třídy tlačítek aj. Třídy mají svá jména. popisky Label tlačítka Button textová pole TextBox atd. Kdykoliv se v programu vytvoří objekt dané třídy, sáhne se do šablony a vytvoří se podle ní. Objekt je potom tzv. INSTANCE dané třídy. Instance znamená jeden případ, jeden konkrétní výskyt.

Dokumentace tříd Programátor si nemůže všechno pamatovat, proto je tu dokumentace. Zvolte v menu Nápověda a zkuste vyhledat popis třídy Pen. Složky třídy jsou uskupeny podle kategorií, nejdůležitější jsou Konstruktory (Constructors) Vlastnosti (Properties) Metody (Methods) Události (Events)

Podívejme se na konstruktory, tj. jak se dá vytvořit nová instance třídy Pen. Např. Pen (Color, Single) pro vytvoření pera určité barvy a tloušťky.

private void oknoprogramu_paint(object sender, PaintEventArgs e) { Graphics kp = e.graphics; // Vytvoříme nové pero Pen modrépero = new Pen(Color.Blue); kp.drawline(modrépero, 20, 0, 20, 100); // Změníme tloušťku pera na 10 pixelů modrépero.width = 10; kp.drawline(modrépero, 40, 0, 40, 100); // Změníme barvu pera na světle modrou modrépero.color = Color.LightBlue; kp.drawline(modrépero, 60, 0, 60, 100); } // Další pero dvouparametrickým konstruktorem Pen červenépero = new Pen(Color.Red, 20); kp.drawline(červenépero, 100, 0, 100, 100);

Vytvořte program, který nakreslí čáru o tloušťce, kterou uživatel zadá.

Jmenné prostory Aby se stejně pojmenované třídy nějak daly rozlišit, organizují se do větších celků, tzv. jmenných prostorů. Např. ovládací prvky pro Win aplikace patří do jmenného prostoru System.Windows.Forms. Graphics, Color nebo Pen patří do System.Drawing apod. Použití tříd z určitého jmenného prostoru se ve zdrojovém kódu zapisuje příkazem using. using System; using System.Drawing; using System.Windows.Forms; Pokud se jmenné prostory pomocí using neuvedou, je pak potřeba je uvádět u každého objektu, což není moc pohodlné viz další strana.

příklad výstkytu TextBox v různých jmenných prostorech

Statické složky třídy Ve třídách mohou být kromě běžných složek definovány také složky statické, které se neváží na konkrétní objekt a jejichž názvy se blíže určují jménem třídy. Ze statických složek se nedají vytvářet další instance, jedná se vždy pouze o jednu a tu samou společnou složku pro všechny instance třídy. Statické složky poznáme v dokumentaci podle symbolu S. Příklady statických metod a vlastností: MessageBox.Show, Convert.ToInt32, Convert.ToString, Pens.ConrnflowerBlue, Brushes.Pink, Color.Greed aj.

Autogenerující složky Vlastnosti či metody, jejichž hodnotou je objekt téže třídy. Např. typem statické vlastnosti Color.Red je typ Color. Např. třída Color nabízí také autogenerující metodu FromArgb.

private void oknoprogramu_load(object sender, EventArgs e) { // Žlutou barvu do proměnné (autogenerující vlastnost) Color žlutábarva = Color.Yellow; } // Získání barevných komponent RGB dané barvy // (použití složek objektu Color) int R = žlutábarva.r; int G = žlutábarva.g; int B = žlutábarva.b; // Zobrazení výsledků poležlutár.text = Convert.ToString(R); poležlutág.text = Convert.ToString(G); poležlutáb.text = Convert.ToString(B); kp.drawellipse(žlutépero, 0, 0, 70, 70); } private void panelmíchaná_paint(object sender, PaintEventArgs e) { Graphics kp = e.graphics; try { // Hodnoty z textových polí do číselné formy int R = Convert.ToInt32(poleMíchanáR.Text); int G = Convert.ToInt32(poleMíchanáG.Text); int B = Convert.ToInt32(poleMíchanáB.Text); // Namíchání barvy (autogenerující metoda) Color míchanábarva = Color.FromArgb(R, G, B); private void panelžlutá_paint(object sender, PaintEventArgs e) { Graphics kp = e.graphics; Color žlutábarva = Color.Yellow; Pen žlutépero = new Pen(žlutáBarva); kp.drawellipse(žlutépero, 0, 0, 70, 70); } } // Pero z míchané barvy (volání konstruktoru) Pen pero = new Pen(míchanáBarva); // Elipsa připraveným perem kp.drawellipse(pero, 0, 0, 70, 70); catch { } } private void všechnapolemíchaná_textchanged(object sender, EventArgs e) // Společná obsluha tří spodních textových polí { panelmíchaná.refresh(); }

Vytvořte program, který nakreslí kružnici tloušťky 3 pixelů, v odstínu šedi 0 255, jak uživatel zadá.

Výčtový typ Pokud je typem nějaké vlastnosti výčtový typ, značí to, že vlastnost může nabývat pouze vybraných předepsaných hodnot. Příkladem je třeba typ vlastnosti DashStyle objektů třídy Pen. Typ se jmenuje stejně DashStyle. Konkrétní hodnotu zapíšeme tak, že za jméno výčtového typu zapíšeme tečku a za ni jméno zvolené hodnoty např. DashStyle.Solid.

Hodnota Custom Dash DashDot DashDotDot Dot Solid Význam programátorem definovaný styl čáry čárkovaná čára čerchovaná čára dvojitá čerchovaná čára tečkovaná čára plná čára Vyzkoušejte: using System.Drawing.Drawing2D; private void oknoprogramu_paint(object sender, PaintEventArgs e) { Graphics kp = e.graphics; } Pen čerchovanépero = new Pen(Color.CornflowerBlue); čerchovanépero.dashstyle = DashStyle.DashDot; kp.drawrectangle(čerchovanépero, 10, 10, 100, 100);

Shrnutí Programátorské objekty se skládají z vlastností, událostí a metod. V programech je většinou více objektů stejného druhu, např. 4 tlačítka. Tomuto druhu objektů se říká třída. K jednotlivým třídám lze nalézt informace v nápovědě. Konstruktor je metoda, která vytváří nové instance dané třídy. V C# se konstruktor jmenuje vždy stejně jako daná třída a předchází mu slovo new. Třídy se sdružují do celků, tzv. jmenných prostorů. Použití jm. prostoru je potřeba uvést příkazem using. Kromě běžných složek mohou být definovány také složky statické, které se neváží na konkrétní objekt. Tzv. autogenerující složky třídy jsou vlastnosti nebo metody, jejichž hodnou je objekt téže třídy.

Vlastnost TextAlign textového pole udává zarovnání textu v poli. Jejím datovým typem je výčet HorizontalAlignment. Vyzkoušejte práci s tímto typem na programu, kde se textové pole zarovná podle stisknutého tlačítka.

Vlastnost FormBorderStyle udává styl okna programu. Jejím datovým typem je výčet FormBorderStyle. Vyzkoušejte práci s tímto typem.

Udělejte program, který zjistí kolik dní už jste na světě. Tipy: Na.NETu existují třídy DateTime a TimeSpan. Objekty DateTime zachycují jeden časový okamžik, TimeSpan dobu mezi nimi. Objekt DateTime může ukládat datum i čas. Pokud čas nezajímá, tak 0:00. Objekt DateTime lze vyrobit z textového řetězce autogenerující metodou DateTime.Parse. Aktuální datum lze zjistit autogenerující vlastností DateTime.Today. Doba mezi dvěma daty se určí jejich odečtením. Vznikne objekt třídy TimeSpan. Objekty TimeSpan mají řadu zajímavých vlastností, např. Days udává počet celých dní v příslušném časovém intervalu. Podrobnosti hledejte v nápovědě k DateTime a TimeSpan.

Př. Textové pole má v sobě vestavěnou reakci na klávesy Ctrl+X (vyjmout), Ctrl+V (vložit), Ctrl+C (kopírovat). Tyto operace lze provést také voláním metod Cut, Paste a Copy textového pole. To se hodí třeba tehdy, když chceme, aby uživatel mohl tyto volby volat z nabídky.

Př. vždy ve středu okna