-
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.