Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

22/04/20151 Výjimky (1) Výjimky dovolují tvorbu programů, které mo- hou reagovat na různé chybové stavy vzniklé v jeho průběhu Cílem výjimek je učinit.

Podobné prezentace


Prezentace na téma: "22/04/20151 Výjimky (1) Výjimky dovolují tvorbu programů, které mo- hou reagovat na různé chybové stavy vzniklé v jeho průběhu Cílem výjimek je učinit."— Transkript prezentace:

1 22/04/20151 Výjimky (1) Výjimky dovolují tvorbu programů, které mo- hou reagovat na různé chybové stavy vzniklé v jeho průběhu Cílem výjimek je učinit programy robustnější tím, že jsou rozšířeny o schopnosti správy chyb vzniklých na úrovni aplikace nebo ope- račního systému V jazyku C# jsou všechny výjimky instancí třídy Exception nebo jejich následníků

2 22/04/20152 Výjimky (2) Mechanismus výjimek je v jazyce C# založen na klíčových slovech: –try : vymezuje začátek chráněného bloku kódu jestliže nějaká operace v tomto bloku způsobí výjimku, pak je okamžitě řízení předáno do bloku, který je umí- stěný za klíčovým slovem catch –catch : slouží k zápisu bloku, který se provede jestliže ve sdruženém chráněném bloku dojde ke vzniku výjimky po bloku try může následovat více bloků catch, z nichž každý slouží pro ošetření specifického typu výjimky

3 22/04/20153 Výjimky (3) blok catch se zapisuje ve tvaru: catch (typ_výjimky proměnná) { ošetření výjimky } proměnná obsahuje objekt vyjadřující podrobné úda- je o vzniklé výjimce (např. vlastnost Message obsa- huje textový popis chyby, která způsobila výjimku) poznámka: –proměnná může být v zápisu bloku catch vynechána –finally : udává volitelný blok používaný většinou k uvolnění zdrojů alokovaných v bloku try

4 22/04/20154 Výjimky (4) příkazy v tomto bloku jsou vykonány vždy, tzn. v pří- padě výskytu výjimky i v případě normálního prove- dení –throw : slouží k vyvolání výjimky Jestliže při provádění příkazů v bloku try dojde ke vzniku výjimky, které neodpovídá žádný blok catch, potom: –metoda, v níž byl použitý blok try je ukončena a řízení se vrátí do volající metody –jestliže volající metoda používá blok try, pak se hledá ošetření výjimky v blocích catch tohoto bloku try

5 22/04/20155 Výjimky (5) –jestliže volající metoda nepoužívá blok try nebo nedefinuje odpovídající ošetření v bloku catch, pak je volající metoda ukončena řízení se vrací její volající metodě, kde se celý proces opakuje –pokud je nakonec nalezeno ošetření vzniklé vý- jimky, tak se provedou příkazy popsané v přísluš- ném bloku catch a poté se pokračuje prvním příkazem za blokem catch v metodě, která vý- jimku zachytila –není-li nikde nalezeno ošetření vzniklé výjimky, pak je program ukončen

6 22/04/20156 Částečné třídy (1) Jazyk C# dovoluje rozdělit zdrojový kód tří- dy do více samostatných souborů Používáno velmi často při tvorbě aplikací vy- užívajících rozhraní Windows Forms nebo Windows Presentation Foundation (WPF): –část zdrojového kódu třídy, kterou programátor může ručně upravovat, je uložena v souboru od- děleném od kódu, který generuje přímo Visual Studio Jestliže je třída rozdělena do více souborů, musí jednotlivé části třídy (v každém soubo- ru) být označeny klíčovým slovem partial

7 22/04/20157 Částečné třídy (2) Příklad (uloženo např. v souboru Prog1.cs ): partial class Ctverec { private int strana; public Ctverec(int pocatecniStrana) { strana = pocatecniStrana; } public int GetStrana() { return strana; } }

8 22/04/20158 Částečné třídy (3) Příklad (uloženo např. v souboru Prog2.cs ): partial class Ctverec { public int UrciObsah() { return strana*strana; } public int UrciObvod() { return 4*strana; } }

9 22/04/20159 Windows Forms Rozhraní pro programování grafických apli- kací Součást MS.NET Framework Poskytuje sadu tříd umožňujících přístup ke standardním ovládacím prvkům operačního systému MS Windows (okno, tlačítko, menu, editační prvek atd.) Aplikace psané pomocí Windows Forms jsou událostmi řízené

10 22/04/201510 Hierarchie tříd Object MarshalByRefObject Component Control ScrollableControl ContainerControl Form ButtonBase Button CheckBox RadioButton Label TextBoxBase TextBox ListControl ComboBox ListBox ScrollBar StatusBar 1 1 4 4 PictureBox ToolBar 3 3 Menu ContextMenu Application MessageBox MainMenu MenuItem 2 2 Graphics

11 22/04/201511 Třída Application (1) Definována ve jmenném prostoru: System.Windows.Forms Poskytuje metody, vlastnosti a události umož- ňující řídit běh aplikace Všechny členy třídy Application jsou sta- tické Poznámka: –třída Application je definována s modifikáto- rem sealed  není možné definovat třídu, která by byla jejím potomkem

12 22/04/201512 Třída Application (2) Vlastnosti: –ExecutablePath : vrací název souboru (včetně cesty), který spustil ap- likaci –OpenForms : vrací kolekci otevřených formulářů, které aplikace vlastní –StartupPath : vrací cestu k souboru, který spustil aplikaci (bez jmé- na souboru)

13 22/04/201513 Třída Application (3) Metody: –Restart : ukončí aplikaci a provede její opětovné spuštění –Run : zahájí standardní cyklus očekávající příchod zprávy (události) je-li jejím parametrem formulář (okno), pak se pro- vede jeho zobrazení a metoda Run nevrátí řízení, do- kud daný formulář není uzavřen typicky používána pro zobrazení hlavního okna apli- kace

14 22/04/201514 Třída Control (1) Definována ve jmenném prostoru: System.Windows.Forms Základní třída pro ovládací prvky systému MS Windows (komponenty s vizuální repre- zentací), např.: –formuláře (okna) –tlačítka –editační pole –rolovací lišty Implementuje základní podporu pro odpoví- dající objekty

15 22/04/201515 Třída Control (2) Vlastnosti: –BackColor : udává barvu pozadí ovládacího prvku –BackgroundImage : specifikuje obrázek zobrazený na pozadí ovládacího prvku (*.gif, *.jpg, *.bmp, *.wmf, *.png) –ClientSize : udává velikost (výšku a šířku) klientské části ovláda- cího prvku –ContextMenuStrip : určuje kontextové menu zobrazené když uživatel stiskne pravé tlačítko myši

16 22/04/201516 Třída Control (3) –Cursor : určuje kurzor myši, který bude nad ovládacím prv- kem použitý –Enabled : udává, zda je ovládací prvek aktivní nebo nikoliv (grayed) –Focused : zjišťuje, zda má ovládací prvek vstupní zaměření (focus) –Font : specifikuje font textu použitého v ovládacím prvku –ForeColor : určuje barvu popředí ovládacího prvku (např. u tla- čítka se jedná o barvu textu) –Handle : vrací popisovač (handle) daného ovládacího prvku

17 22/04/201517 Třída Control (4) –Height : výška ovládacího prvku –Left : x-ová souřadnice levého horního rohu ovládacího prvku –Location : souřadnice levého horního rohu ovládacího prvku –Name : jedinečné jméno ovládacího prvku –Size : výška a šířka ovládacího prvku –TabIndex : určuje pořadí komponenty, ve kterém při stisku klá- vesy TAB získává vstupní zaměření (focus)

18 22/04/201518 Třída Control (5) –TabStop : určuje, zda uživatel může ovládací prvek vybrat po- mocí klávesy TAB –Text : specifikuje text (titulek) ovládacího prvku –Top : y-ová souřadnice levého horního rohu ovládacího prvku –Visible : udává, zda je (není) ovládací prvek viditelný –Width : šířka ovládacího prvku Metody: –Focus : nastavuje ovládacímu prvku vstupní zaměření (focus)

19 22/04/201519 Třída Control (6) –Hide : skryje ovládací prvek ekvivalentní nastavení vlastnosti Visible na hod- notu false –Invalidate : dává požadavek na překreslení ovládacího prvku –Refresh : vynucuje překreslení ovládacího prvku (ekvivalentní vyvolání metod Invalidate + Update ) –Show : učiní ovládací prvek viditelný ekvivalentní nastavení vlastnosti Visible na hod- notu true

20 22/04/201520 Třída Control (7) –Update : provede překreslení ovládacího prvku (pouze pokud byl předtím dán požadavek pomocí Invalidate ) Události: –Click : dojde k ní při klepnutí primárním (levým) tlačítkem na ovládací prvek –DoubleClick : dojde k ní při double-clicku primárním (levým) tla- čítkem myši na ovládací prvek –Enter : dojde k ní v době, kdy je ovládací prvek aktivován

21 22/04/201521 Třída Control (8) –KeyPress : dojde k ní při stisku klávesy a je poslána ovládacímu prvku mající vstupní zaměření (focus) je vyvolána pouze v případě, že se jedná o klávesu reprezentující znak pro klávesy, které nereprezentují znak je zapotřebí provést obsluhu události KeyDown, popř. KeyUp –Leave : nastává v okamžiku, kdy vstupní zaměření opouští ovládací prvek –MouseDown : dojde k ní když kurzor myši je nad ovládacím prv- kem a je proveden stisk některého tlačítka myši

22 22/04/201522 Třída Control (9) –MouseMove : dojde k ní při pohnutí myší nad ovládacím prvkem –MouseUp : dojde k ní když kurzor myši je nad ovládacím prvkem a je provedeno uvolnění stisknutého tlačítka myši –Paint : dojde k ní v době, kdy je ovládací prvek překreslo- ván –Resize : nastává v okamžiku, kdy se u ovládacího prvku mění jeho velikost –TextChanged : dojde k ní při změně textu ovládacího prvku

23 22/04/201523 Třída Form (1) Definována ve jmenném prostoru: System.Windows.Forms Reprezentuje standardní okna (formuláře) aplikace Třída Form může být využita pro vytvoření a správu např.: –hlavního okna aplikace –dialogových oken –oken pro aplikace MDI (Multiple Document Interface)

24 22/04/201524 Třída Form (2) Vlastnosti: –AcceptButton : specifikuje tlačítko v okně, které je stisknuto v okam- žiku, kdy uživatel stiskne klávesu Enter –ActiveControl : nastavuje (zjišťuje), který ovládací prvek v okně bude mít (má) vstupní zaměření (focus) zděděno od třídy ContainerControl –ActiveForm : vrací aktuální (aktivní) formulář aplikace –ActiveMdiChild : vrací aktuální (aktivní) formulář v aplikaci MDI

25 22/04/201525 Třída Form (3) –CancelButton : specifikuje tlačítko v okně, které je stisknuto v okam- žiku, kdy uživatel stiskne klávesu Esc –ControlBox : specifikuje, zda-li má být v titulním proužku zobra- zená ikona se systémovým menu –FormBorderStyle : udává vzhled a chování okraje okna (např. Sizable FixedSingle, Fixed3D, FixedDialog ) –HelpButton : specifikuje, zda-li má být v titulním proužku zobra- zeno tlačítko pro nápovědu –Icon : specifikuje ikonu formuláře (okna) – *.ico

26 22/04/201526 Třída Form (4) –KeyPreview : určuje, zda má formulář přijímat stisknuté klávesy dříve než ovládací prvek mající vstupní zaměření (focus) –MainMenuStrip : specifikuje hlavní menu formuláře (okna) –MaximizeBox : specifikuje, zda-li má být v titulním proužku zobrazeno tlačítko pro maximalizaci –MinimizeBox : specifikuje, zda-li má být v titulním proužku zobrazeno tlačítko pro minimalizaci –StartPosition : určuje počáteční pozici okna (např. CenterScreen, Manual, WindowsDefaultLocation )

27 22/04/201527 Třída Form (5) –WindowState : udává stav okna ( Normal, Minimized, Maximized ) Metody: –Activate : aktivuje okno (předává mu vstupní zaměření) –Close : provede uzavření okna –LayoutMdi : uspořádá dceřiná okna aplikace MDI ( Cascade, TileHorizontal, TileVertical, ArrangeIcons ) –ShowDialog : zobrazí okno jako modální dialogové okno

28 22/04/201528 Třída Form (6) Události: –Activated : vzniká v době, kdy se formulář (okno) stává aktivním –Deactivate : vzniká při deaktivaci okna (ztrátě vstupního zaměření) –FormClose : nastává poté, kdy je formulář (okno) uzavřen –FormClosing : nastává v okamžiku, kdy se formulář (okno) uzavírá –Load : nastává před prvním zobrazením okna –Shown : nastane, když je okno poprvé zobrazeno


Stáhnout ppt "22/04/20151 Výjimky (1) Výjimky dovolují tvorbu programů, které mo- hou reagovat na různé chybové stavy vzniklé v jeho průběhu Cílem výjimek je učinit."

Podobné prezentace


Reklamy Google