Objektové programování I (C#) – 6 RNDr. Michal Pobucký michal.pobucky@fpf.slu.cz Ústav informatiky – zima 2020 Práce se soubory • Pokračujeme v psaní naší aplikace • Přidejte nový formulář Binary.cs • A následující ovládací prvky: Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký but_NactiBin but_UlozBin but_SmazBin but_Pruzkumnik Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Vytvoříme událost Spustit Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Přidáme průzkumník souborů Spustit Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Jde to i jednodušeji Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Jde to i jednodušeji Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Otevřít průzkumník • Kliknout na Uložit binární soubor • Prohlédnout v průzkumníku obsah souboru bin Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Přidáme tb_Vystup (nezapomeňte na Multiline) Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Kliknout na Načti binární soubor Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • BinaryReader a BinaryWriter lze nahradit StreamReader a StreamWriter, pak bude obsah souboru odpovídat textovým řetězcům, které do něj ukládáme (s tím jsme se setkali již dříve) Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Vytvoříme novou třídu Osoba.cs Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký but_VytvorOsoby Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Vytvářejte osoby Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Vytvořit osoby • Uložit binární soubor • Otevřít průzkumníka • Prohlédnout obsah souboru BIN Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Vytvořit osoby • Uložit binární soubor • Otevřít průzkumníka • Prohlédnout obsah souboru BIN Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Refaktorujeme obsah zobrazení z but_VytvorOsoby_Click na metodu ZobrazMoje() Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Refaktorujeme obsah zobrazení z but_VytvorOsoby_Click na metodu ZobrazMoje() Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Načíst binární soubor Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvoříme událost pro smazání binárního souboru Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Nejprve vytvoříme globální proměnnou Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Nejprve vytvoříme globální proměnnou Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Načíst binární soubor • Smazat binární soubor • Načíst binární soubor Co se stane? Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Spustit • Načíst binární soubor • Smazat binární soubor • Načíst binární soubor Co se stane? Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Ošetříme výjimku Spustit Práce se soubory – serializace Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvoříme jednoduchou hru • Naučíme se používat časovač - Timer Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvořte nový formulář – Hra.cs • but_Start, BackColor = GreenYellow • but_Stop, BackColor = OrangeRed • lab_Time, Font = Microsoft Sans Serif, 72pt; Bold Text = 5 • but_1 až but_6, Size=75; 75, Text=„“ • v grafickém editoru přidáme ještě Timer timer1 • Interval = 1000 Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Obsloužíme událost Timeru Tick Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvoříme události buttonu Start a Stop Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvoříme odkaz v menu Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Obsloužíme odkaz v menu Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Na šesti buttonech se zobrazí šest čísel. Jedno se bude lišit v paritě (buď bude sudé a ostatní lichá anebo naopak). Uživatel musí kliknout na odlišné číslo. Pokud se splete – prohrál. Pokud mu vyprší čas – prohrál. Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Nastavení čísel Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Nastavení čísel Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Nastavíme velikost fontu u buttonů na 16 Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvoříme globální proměnnou Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Nastavíme globální proměnnou Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vytvoříme globální proměnnou Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Obsloužíme button 1 Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Obsloužíme button 1 Kód bude identický i u dalších buttonů, proto refaktorizujeme => Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Obsloužíme zbylé buttony Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Odladíme drobnosti • Nezobrazuje hodnotu 5 Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Odladíme drobnosti • Na nule se nezastaví, pokračuje do mínusu Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Odladíme drobnosti Spustit Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vylepšíme časovač Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vylepšíme časovač Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vylepšíme časovač Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vylepšíme časovač Hra Objektové programování I (C#) - 6 - RNDr. Michal Pobucký • Vylepšíme časovač Upravíme label Spustit