Příkazy (1) Příkazy (commands) slouží pro zjednodušení vyvolání jedné (stejné) funkce programu (pop-sané metodou) pomocí různých prostředků, např.: položka.

Slides:



Advertisements
Podobné prezentace
13/04/20151 Multitasking Schopnost operačního systému mít spuštěno více programů současně Operační systém používá hardwarové hodiny a každému běžícímu.
Advertisements

Školení MS Word 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, říjen 2011 Vzdělávání v eGON centru Třebíč Tento.
Tabulkový procesor Formuláře – interaktivní prvky v Excelu Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková. Dostupné z Metodického.
Ověřené výstupy z ISKN elektronická značka Jiří Formánek
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Název školy ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu CZ.1.07/1.4.00/ Číslo a název klíčové aktivity 3.2 Inovace a zkvalitnění výuky prostřednictvím.
Úvod do Delphi - 1.hodina OB21-OP-EL-KON-DOL-M-4-006A Orbis pictus 21. století.
Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Systém správy dokumentace akreditované zkušební laboratoře Bc. Jan Randl, 4912.
Programování v jazyce C++ Dědičnost a polymorfismus.
Autor:Ing. Pavel Brož Předmět/vzdělávací oblast:Informační a komunikační technologie Tematická oblast:Práce se standardním aplikačním programovým vybavením.
HTML HyperText Markup Language Je to značkovací jazyk používaný na tvorbu webových stránek, které jsou propojeny hypertextovými odkazy. Je hlavním z.
Název kapitoly Název podkapitoly Text Schvalovací proces + hodnoticí kritéria Jakub Krátký Praha, 5. května 2016.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Principy Základních registrů Ing. Ondřej Felix, CSc.
Projekt: Škola pro život Registrační číslo: CZ.1.07/1.4.00/ Číslo DUM: VY_32_INOVACE_02-informatika 8. třída_021 Základní škola: Základní škola.
Vyhláška č. 326/2006 Sb., o atestačním řízení pro elektronické nástroje Mgr. Martin Plíšek.
Software =je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost. - Software je protiklad k hardwaru,
Microsoft Excel verze 2010 Mgr. Přemysl Kejzlar.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Základy automatického řízení 1
Tutoriál ~ eKnihy Stahování
Výukový materiál zpracován v rámci projektu
Systémové databáze v SQL Serveru
Ucelené řešení pro řízení lidských zdrojů, ekonomiky a logistiky
Práce s PC P1.B Vránek Michal.
9. Přenos programu z PC do stroje
Evaluace předmětů studenty (Anketky)
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Inf Operační systémy a jejich funkce
Výukový materiál zpracován v rámci projektu
1. Tlačítko START 2. Podrobnější hledání 3. Zařízení a tiskárny 4
Ovládací prvky (1) Ovládací prvky jsou ve WPF reprezentovány třídami (podobně jako ve Windows Forms) Lze je rozdělit do následujících skupin: tlačítka:
Programování v jazyce C++
Tisk z MS Windows (1) Pro účely tisku na tiskárnách Windows Forms poskytují třídu PrintDocument Třída PrintDocument je definována ve jmenném prostoru:
Přenos tepla Požár a jeho rozvoj.
Datové vazby (1) Datová vazba (data binding) je proces, který ustanovuje spojení mezi uživatelským rozhra-ním aplikace a její aplikační logikou Poskytuje.
Dostupné z Metodického portálu ; ISSN
Inf Ovládání operačního systému
JEdit Open source programování – – Marek Bílý.
Inf Tabulkový procesor - formátování
Databáze MS ACCESS 2010.
Abstract Factory.
Číslicová technika.
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
C# Vícevláknové aplikace
Schvalovací proces + hodnoticí kritéria
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
1. ročník oboru Mechanik opravář motorových vozidel
Schvalovací proces + hodnoticí kritéria
Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů
Informatika pro ekonomy přednáška 8
Stahování eBooks ~ Podrobný průvodce prvním stahováním
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
© 2012 STÁTNÍ ÚSTAV PRO KONTROLU LÉČIV
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Typy Oken, Zobrazení a Konfigurace
Corel PHOTO-PAINT Úloha 3 Zpracovala: Mgr. Jitka Hotařová
Materiál byl vytvořen v rámci projektu
Zapisovatelé : Informace o způsobu zápisu
Název školy: Autor: Název: Číslo projektu: Název projektu:
název projektu: Šablony Špičák číslo projektu: CZ.1.07/1.4.00/
A5M33IZS – Informační a znalostní systémy
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr
Předmět: Informatika Ročník: VI. Tématický celek: Základy práce s PC
Dotazníkové šetření II – koncepce a nastavení
Informační systém základních registrů
Hromadné dokumenty opakující se pro kolekci osob
Základní ovládání „Windows“
Transkript prezentace:

Příkazy (1) Příkazy (commands) slouží pro zjednodušení vyvolání jedné (stejné) funkce programu (pop-sané metodou) pomocí různých prostředků, např.: položka v menu (hlavním nebo kontextovém) tlačítko v nástrojové liště zkratkový povel (shortcut) Umožňují definovat akce na jednom místě pro-gramu a odkazovat se na ně prostřednictvím různých ovládacích prvků 22/05/2018

Příkazy (2) Poskytují také podporu pro automatické akti-vování, resp. deaktivování ovládacích prvků v závislosti na tom, zda jimi vyvolaná operace může, resp. nemůže být v daný okamžik pro-vedena Definice příkazů se provádí pomocí vlastnosti CommandBindings (definované na úrovni třídy UIElement), která sdružuje kolekci příkazů Jednotlivé příkazy jsou definovány elementem <CommandBinding> 22/05/2018

Příkazy (3) Třída CommandBinding nastavuje vazbu mezi příkazem (typu RoutedCommand) a ob-služnými metodami, které jej implementují Definuje: vlastnost Command: uchovává asociovaný příkaz události Executed a PreviewExecuted: nastávají v okamžiku, kdy asociovaný příkaz má být proveden události CanExecute a PreviewCanExecute: nastávají v době, kdy asociovaný příkaz testuje, zda mů-že být proveden 22/05/2018

Příkazy (4) WPF poskytuje sadu předdefinovaných pří-kazů, které se v aplikacích často používají Tyto předdefinované příkazy jsou popsány ja-ko statické vlastnosti tříd: ApplicationCommands: standardní aplikační příkazy: např.: New, Open, Save, Copy, Cut, Paste, Find NavigationCommands: příkazy používané pro navigaci v dokumentu např.: BrowseBack, BrowseForward, GotoPage, Refresh, Search, Zoom 22/05/2018

Příkazy (5) MediaCommands: EditingCommands: ComponentCommands: reprezentují akce pro ovládání mediálních aplikací např.: Play, Stop, Pause, Record, NextTrack, PreviousTrack, IncreaseVolume, Decrease- Volume EditingCommands: operace používané při editaci dokumentů např.: AlignLeft, AlignRight, IncreaseFont-Size, DecreaseFontSize, EnterLineBreak ComponentCommands: slouží pro přesouvání se mezi komponentami např.: MoveDown, MoveLeft, ScrollPageDown, ScrollPageUp 22/05/2018

Příkazy (6) Příklad definice příkazu: <Window.CommandBindings> <CommandBinding Command = ”ApplicationCommands.Copy” Executed = ”CopyCmd_Spusten” CanExecute = ”CopyCmd_LzeSpustit”/> </Window.CommandBindings> Definovaný příkaz lze přiřadit k ovládacímu prvku pomocí jeho vlastnosti Command: <MenuItem Header = ”Kopírovat” Command = ”ApplicationCommands.Copy”/> 22/05/2018

Příkazy (7) Poznámky: v kódu na pozadí je zapotřebí definovat metody zodpovědné za obsluhu událostí Executed a CanExecute při použití příkazů se také automaticky přiřadí standardní zkratková klávesa pro danou operaci (např. Ctrl+C) Kromě používání předdefinovaných příkazů je možné také v programu definovat příkazy vlastní: jedná se mimo jiné o možnost, jak definovat vlastní zkratkové klávesy 22/05/2018

Příkazy (8) Definice vlastního (uživatelského příkazu) se provádí pomocí statické datové položky urče-né pouze pro čtení typu RoutedCommand Třída RoutedCommand definuje vlastnosti (nastavitelné v době volání konstruktoru): InputGestures: kolekce objektů třídy InputGesture umožňuje zadat zkratkové klávesy Name: název příkazu OwnerType: typ třídy, ve které je příkaz registrovaný 22/05/2018

Práce se schránkou (1) Pro práci se schránkou (clipboard) poskytuje WPF (podobně jako Windows Forms) třídu Clipboard Třída Clipboard (pro WPF) je definována ve jmenném prostoru System.Windows Poskytuje obdobné statické metody pro ma-nipulaci se schránkou (clipboardem) jako v případě Windows Forms: Clear: vymaže obsah schránky 22/05/2018

Práce se schránkou (2) ContainsAudio, ContainsImage, ContainsFileDropList, ContainsText: udává, zda schránka obsahuje: data ve formátu WaveAudio bitmapu soubory text GetAudioStream, GetFileDropList, GetImage, GetText: vrací data ze schránky (audio, soubory, bitmapu, text) SetAudio, SetFileDropList, SetImage, SetText: předává data do schránky (audio, soubory, bitmapu, text) 22/05/2018

Multitasking Schopnost operačního systému mít spuštěno více programů současně Operační systém používá hardwarové hodiny a každému běžícímu procesu přiděluje tzv. časová kvanta Pokud jsou časová kvanta dostatečně malá (a počítač není přetížen velkým množstvím spuštěných programů), má uživatel pocit, že všechny programy pracují současně 22/05/2018

Multithreading (1) Schopnost programu (za příslušné podpory operačního systému) zavést „multitasking sám v sobě“ Program se může rozdělit na několik samo-statných výpočtových (prováděcích) vláken, tzv. threads Jednotlivým vláknům jsou pak opět přidělová-na časová kvanta a tím vzniká dojem, že tato vlákna pracují současně 22/05/2018

Multithreading (2) Dovoluje vyvolat funkci programu, ještě dří-ve než byla dokončena funkce předešlá Program (v operačním systému podporujícím multithreading) začíná pracovat hlavním (primárním) výpočtovým vláknem V rámci hlavního výpočtového vlákna mohou být vytvářena a spouštěna další výpočtová vlákna 22/05/2018

Třída Thread (1) Definována ve jmenném prostoru: System.Threading Umožňuje vytváření a řízení činnosti výpoč-tových vláken Vytvoření nového výpočtového vlákna lze provést prostřednictvím volání konstruktoru (třídy Thread) Volanému konstruktoru se jako parametr pře-dá delegát specifikující metodu, která obsa-huje příkazy, jež se budou v průběhu výpoč-tového vlákna provádět 22/05/2018

Třída Thread (2) Delegát specifikující vyvolávanou metodu je tvaru: public delegate void ThreadStart() public delegate void ParameterizedThreadStart(object obj) Zahájení činnosti výpočtového vlákna je mož-né následně provést pomocí volání metody Start: vlákno je spuštěno asynchronně, tj. jako nebloku-jící Vlastnosti: CurrentThread: vrací aktuálně běžící výpočtové vlákno 22/05/2018

Třída Thread (3) IsBackground: Name: Priority: udává, zda se jedná o výpočtové vlákno, které je na pozadí, tj. background výpočtové vlákno může být background (nezabraňuje ukončení procesu) nebo foreground v okamžiku, kdy jsou všechna výpočtová vlákna fore-ground (patřící k danému procesu) ukončena, dojde k ukončení celého procesu a všechna zbývající vlákna background zůstanou nedokončena Name: specifikuje jméno výpočtového vlákna Priority: udává prioritu vlákna (Lowest, BelowNormal, Normal, AboveNormal, Highest) 22/05/2018

Třída Thread (4) Metody: ThreadState: Abort: Join: specifikuje stav vlákna (např. Running, Stopped, Aborted, Background apod.) Metody: Abort: způsobí výjimku ThreadAbortException a za-hájí proces vedoucí k ukončení výpočtového vlákna výjimka ThreadAbortException může být za-chycena, ale na konci bloku catch je vyvolána znovu opětovnému vyvolání ThreadAbortException lze zabránit voláním metody ResetAbort Join: blokuje volající výpočtové vlákno, dokud dané výpoč-tové vlákno neskončí 22/05/2018

Třída Thread (5) ResetAbort: Sleep: Start: ruší požadavek na ukončení výpočtového vlákna Sleep: pozastaví provádění vlákna na specifikovaný počet milisekund Start: zahájí činnost dříve vytvořeného výpočtového vlákna dané vlákno se po vyvolání metody Start nachází ve stavu Running umožňuje předat objekt obsahující data, která mají být použita metodou spouštěnou v rámci výpočtového vlákna je-li vlákno dokončeno, nemůže být pomocí metody Start znovu restartováno 22/05/2018

Třída Thread (6) Poznámka: existují i metody Suspend a Resume pro do-časné pozastavení činnosti vlákna a pro opětovné pokračování v jeho činnosti tyto metody jsou však zastaralé (obsolete) a v bu-doucích verzích nebudou podporovány 22/05/2018

Příkaz lock (1) Označuje blok programu jako kritickou sekci Slouží k zabezpečení, že určitý blok programu proběhne bez přerušení jinými výpočtovými vlákny Příklad: private static object theLock = new object(); … public static void DoWork() { lock (theLock) { // kritická sekce } } 22/05/2018

Příkaz lock (2) Zaručuje, že výpočtové vlákno nevstoupí do kritické sekce v době, kdy se v ní nachází jiné výpočtové vlákno Objekt uvedený jako argument za klíčovým slovem lock: je použitý pro identifikaci zdrojů sdílených mezi více výpočtovými vlákny musí být viditelný všemi vlákny musí být referenčního datového typu by měl být chráněný proti vnějšímu přepsání (private) 22/05/2018

Příkaz lock (3) Příkaz lock představuje syntaktickou zkratku pro volání metod Enter a Exit statické třídy Monitor s použitím bloku try a finally Příklad: private static object theLock = new object(); … public static void DoWork() { Monitor.Enter(theLock); try { // kritická sekce } finally { Monitor.Exit(theLock); } } 22/05/2018

Multithreading a GUI (1) Výpočtové vlákno by nemělo přistupovat pří-mo k ovládacím prvkům uživatelského roz-hraní, které nebyly tímto vláknem vytvořeny Poznámka: přímý přístup z jiného výpočtového vlákna by neměl být proveden k žádnému objektu vytvo-řenému na základě třídy odvozené od třídy DispatcherObject (pokud není „zmrazen“) Přístup k ovládacím prvkům vytvořeným ji-ným výpočtovým vláknem by měl být realizo-ván pomocí vlastnosti Dispatcher 22/05/2018

Multithreading a GUI (2) Vlastnost Dispatcher (typu Dispatcher) je definována ve třídě DispatcherObject a vrací objekt dovolující zpřístupnit výpočtové vlákno, k němuž daný ovládací prvek náleží Přístup k ovládacímu prvku z jiného výpočto-vého vlákna se tedy provádí pomocí vlastnosti Dispatcher voláním metod: BeginInvoke: asynchronně spustí delegáta (současné výpočtové vlák-no není blokováno, dokud se delegát neprovede) ve vý-počtovém vláknu, jež daný ovládací prvek vytvořilo 22/05/2018

Multithreading a GUI (3) Invoke: synchronně spustí delegáta (současné výpočtové vlákno je blokováno, dokud se delegát neprovede) ve výpočto-vém vláknu, jež daný ovládací prvek vytvořilo Poznámka k Windows Forms: ovládací prvky ve Windows Forms obsahují meto-dy BeginInvoke a Invoke (definované ve tří-dě Contol) s podobným významem jako zmíně-né metody třídy Dispatcher ve WPF lze využít i: metodu EndInvoke: slouží k získání návratové hodnoty asynchronní operace vyvo-lané pomocí metody BeginInvoke 22/05/2018

Multithreading a GUI (4) vlastnost InvokeRequired: vrací hodnotu (typu bool) vyjadřující, zda při přístupu k ovlá-dacímu prvku je nutné použít metodu Invoke nebo metodu BeginInvoke dáno skutečností, že přístup je prováděn z jiného výpočtového vlákna, než je výpočtové vlákno, které vytvořilo daný ovládací prvek 22/05/2018

Třída BackgroundWorker (1) Definována ve jmenném prostoru System.ComponentModel Umožňuje asynchronně spustit operaci v samo-statném výpočtovém vláknu Vlastnosti: CancellationPending: udává, zda byl dán požadavek na ukončení činnosti vý-počtového vlákna IsBusy: informuje, zda výpočtové vlákno běží nebo nikoliv WorkerSupportsCancellation: specifikuje, zda výpočtové vlákno může být asynchron-ně zrušeno 22/05/2018

Třída BackgroundWorker (2) WorkerReportsProgress: zapíná (vypíná) podporu pro informování o postupu vý-počtu prováděném v samostatném výpočtovém vláknu je-li zapnuta (nastavena na hodnotu true), je možné volat metodu ReportProgress, která vyvolá událost ProgressChanged Metody: CancelAsync: požaduje zrušení zahájené operace ve výpočtovém vláknu nastaví vlastnost CancellationPending na true ReportProgress: vyvolá událost ProgressChanged 22/05/2018

Třída BackgroundWorker (3) RunWorkerAsync: provede asynchronní spuštění výpočtového vlákna vyvolá událost DoWork Události: DoWork: vyvolána metodou RunWorkerAsync umožňuje formou obslužné metody popsat operace, které budou prováděny samostatným výpočtovým vláknem ProgressChanged: vyvolána metodou ReportProgess dovoluje reagovat na postupné změny v průběhu výpočtu RunWorkerCompleted: nastává v okamžiku, kdy výpočtové vlákno dokončí svoji činnost 22/05/2018

Třída Registry (1) Definována ve jmenném prostoru: Microsoft.Win32 Poskytuje: objekty typu RegisterKey, které reprezentují kořenové klíče v registry statické metody pro zpřístupňování informací v re-gistry Poznámka: registry: registrační databáze operačního systému MS Windows uchovává nastavení systému a programů 22/05/2018

Třída Registry (2) Datové položky (odpovídají kořenovým klí-čům registry): ClassesRoot: definuje typy (třídy) dokumentů a vlastnosti spojené s těmito typy zpřístupňuje klíč HKEY_CLASSES_ROOT CurrentConfig: obsahuje informace týkající se hardwaru zpřístupňuje klíč HKEY_CURRENT_CONFIG CurrentUser: obsahuje informace o preferencích aktuálního uživatele zpřístupňuje klíč HKEY_CURRENT_USER 22/05/2018

Třída Registry (3) Metody: LocalMachine: GetValue: SetValue: obsahuje konfigurační informace počítače zpřístupňuje klíč HKEY_LOCAL_MACHINE Metody: GetValue: umožňuje načtení hodnoty se specifikovaným jménem v daném klíči SetValue: nastavuje hodnotu v registry 22/05/2018

Třída RegistryKey (1) Definována ve jmenném prostoru: Microsoft.Win32 Zpřístupňuje klíče a hodnoty uložené v registry Vlastnosti: Name: vrací jméno klíče v registry SubKeyCount: vrací počet podklíčů aktuálního klíče ValueCount: vrací počet hodnot v klíči 22/05/2018

Třída RegistryKey (2) Metody: Close: CreateSubKey: DeleteSubKey: uzavírá klíč a v případě, že jeho obsah byl modifikován, provádí zápis na disk CreateSubKey: vytváří nový podklíč nebo otevírá existující podklíč pro zápis DeleteSubKey: smaže specifikovaný podklíč DeleteSubKeyTree: vymaže daný podklíč včetně všech jeho podklíčů DeleteValue: vymaže specifikovanou hodnotu v klíči 22/05/2018

Třída RegistryKey (3) GetValue: GetValueNames: OpenSubKey: SetValue: vrací hodnotu uloženou pod daným jménem umožňuje vrátit implicitní hodnotu (pokud zadané jmé-no neexistuje) GetValueNames: vrací pole řetězců udávající všechna jména hodnot v klíči OpenSubKey: otevírá podklíč SetValue: nastavuje hodnotu, která bude uložena pod daným jmé-nem 22/05/2018