20. Různé

 
  1. Přejdeme opět k vytváření normálních aplikací. Další komponentou, se kterou se seznámíme, je komponenta Shape. Tato komponenta umožňuje na formulář vkládat základní geometrické tvary. Vložený tvar je určen vlastností Shape, která v rozbalovacím seznamu nabízí možné hodnoty (např. sstCircle pro kružnici). Zjistěte, jak se zobrazí další nabízené hodnoty. Zobrazený geometrický tvar ovlivňují také vlastnosti Pen (ovlivňuje okraj tvaru; barva, šířka a styl čáry) a Brush (ovlivňuje vnitřek tvaru; barva a výplňový vzor). Vyzkoušejte.
  2. Začneme vytvářet novou aplikaci a to signalizaci na železničním přejezdu. Doprostřed formuláře umístíme komponentu Panel, zrušíme její titulek a vložíme na ní vedle sebe dvě komponenty Shape. Tyto komponenty změníme na kružnice. Na formulář dále vložíme komponentu Timer a zapíšeme pro ní následující obsluhu události OnTimer.

  3. if (Shape1->Brush->Color != clRed){
      Shape1->Brush->Color = clRed;
      Shape2->Brush->Color = clWhite;
    }
    else {
      Shape1->Brush->Color = clWhite;
      Shape2->Brush->Color = clRed;
    }
  4. Naši aplikaci vylepšíme přidáním tlačítka, jehož stisknutí mění režim signalizace (blikání, neblikání). Na formulář přidáme tlačítko s textem ?Vlak projel, přidáme globální promě?, přidáme bool indikující stav vlaku (true = vlak jede), nastavíme počáteční hodnotu této proměnné na true, vytvoříme událost obsluhující stisk tlačítka a změníme obsluhu události časovače:

  5. bool Vlak = true;
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      if (Vlak){
        if (Shape1->Brush->Color != clRed){
          Shape1->Brush->Color = clRed;
          Shape2->Brush->Color = clWhite;
        }
        else {
          Shape1->Brush->Color = clWhite;
          Shape2->Brush->Color = clRed;
        }
      }
      else {
        Shape1->Brush->Color = clWhite;
        Shape2->Brush->Color = clWhite;
      }
    }
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      if (Vlak) Button1->Caption = "Vlak se blíží";
      else Button1->Caption = "Vlak projel";
      Vlak = !Vlak;
    }
  6. Přidejte do aplikace třetí (fialové) blikající světlo signalizující bezpečný přejezd.
  7. Pokuste se vytvořit aplikaci znázorňující semafor na křižovatce. K dosažení různého časového intervalu pro zobrazení červené (nebo zelené) a oranžové používejte pouze jeden časovač. Interval červené a zelené určíme např. třemi událostmi OnTimer a interval oranžové jednou událostí OnTimer. Řízení změny barev budeme provádět celočíselnou proměnnou inkrementovanou událostí OnTimer. Při hodnotě 3 zhasneme červenou a rozsvítíme oranžovou a zelenou, při hodnotě 4 zhasneme oranžovou atd. a při hodnotě 7 proměnnou vynulujeme.
  8. Přidejte ještě další semafor pro druhý směr.
  9. Dále se seznámíme s možnostmi výběru komponent na formuláři. Jednotlivé komponenty vybíráme kliknutím myši. Více komponent vybíráme myší při stisknuté klávese Shift. Více komponent, které leží na ploše pomyslného obdélníka vybereme myší při stisknuté klávese Ctrl (stiskneme tlačítko myši v jednom rohu výběrového obdélníka a při stisknutém tlačítku myši přemístíme ukazatel myši do protějšího rohu, kde tlačítko myši uvolníme). Vybrané objekty můžeme myší přetáhnout do nové pozice, vložit je do schránky (ze schránky je můžeme umístit na jiný formulář nebo panel), zrušit je apod. Vyzkoušejte.
  10. Jestliže na formuláři máme několik komponent, které chceme uspořádat, můžeme využít zobrazený rastr na formuláři. Komponenty můžeme umisťovat pouze tak, aby jejich rohy byly v bodech rastru. Další možný způsob uspořádávání komponent spočívá ve výběru komponenty, podle které budeme zarovnávat a všech dalších komponent, kterých se zarovnávání má týkat. Po tomto výběru zvolíme v nabídce Edit | Align a v zobrazeném dialogovém okně zadáme způsob uspořádání (zadané uspořádání proběhne vzhledem k první vybrané komponentě). Obdobně můžeme způsob uspořádání zadávat z palety nástrojů zarovnávání zobrazené po volbě View | Alignment Pallete. Vyzkoušejte.
  11. Na procvičení práce s tlačítky vytvořte tuto aplikaci. Na formulář vložte šest tlačítek. Při stisku prvního, resp. druhého překopírujte jeho vlastnost Font tlačítku třetímu, resp. pátému. U prvního a druhého tlačítka zadejte při návrhu jiný typ písma. Třetí tlačítko zakáže, resp. povolí první tlačítko, tj. změní jeho vlastnost Enabled (třetí tlačítko slouží jako přepínač; při lichém stisku zakáže a při sudém stisku tlačítko povolí; měňte i jeho titulek). Obdobně čtvrté tlačítko skryje, resp. zobrazí druhé tlačítko, tj. mění jeho vlastnost Visible. Páté tlačítko bude zvětšovat rozměry šestého tlačítka (při každém stisku oba jeho rozměry zvětší o jeden bod). Šesté tlačítko bude zmenšovat samo sebe (při každém stisku se oba jeho rozměry zmenší o jeden bod; testujte, aby jste se nedostali do záporných hodnot). Na všechna tlačítka vložte i vhodné titulky.
20. Různé II