-
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.
-
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.
if (Shape1->Brush->Color
!= clRed){
Shape1->Brush->Color
= clRed;
Shape2->Brush->Color
= clWhite;
}
else {
Shape1->Brush->Color
= clWhite;
Shape2->Brush->Color
= clRed;
}
-
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:
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;
}
-
Přidejte do aplikace třetí (fialové) blikající světlo signalizující bezpečný
přejezd.
-
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.
-
Přidejte ještě další semafor pro druhý směr.
-
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.
-
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.
-
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.