Kategória: ObjectPascal

Zmenené: 8. december 2008

Štýl formulára

Každá GUI aplikácia je založená na formulári, čo je svojim spôsobom špeciálny kontajnerový komponent (kontajnerový = môže obsahovať ďalšie komponenty). Aplikácia nemusí obsahovať len jeden formulár a Lazarus poskytuje rozsiahle možnosti nastavenia vzhľadu a správania sa formulárov.

Na zmenu vzhľadu a správania formulára je potrebné poznať, ktoré vlastnosti menia vzhľad a správanie formulára. Ale nie len to, je dobré vedieť aj ako ich menia. nemenej dôležité je poznať aj aké udalosti sprevádzajú existenciu formulára a v akom poradí.

Na nastavenie vzhľadu formulára existujú viaceré vlastnosti, ktoré menia vlastnosti ako farbu, či písmo formulára. Ale ja mám na mysli skôr vlastnosti, ktoré mení vzhľad formulára ako takého, nie len prvkov na ňom.

FormStyle

Prvou vlastnosťou je FormStyle a udáva štýl formulára. FormStyle je typu TFormStyle, je definovaná v jednotke Controls a môže nadobúdať hodnoty fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop a fsSplash.

Hodnoty fsMDIChild a fsMDIForm slúžia pre vytváranie tzv MDI aplikácií. MDI je skratkou z anglického Multiple Document Interface, čiže ide o programy s rozhraním pre viacero dokumentov.

fsFlash slúži na vytváranie informačného okna, ktoré sa zobrazuje pri štarte programu, najmä ak ten štart trvá trochu dlhšie. Jeho hlavnou úlohou je informovať používateľa, že aplikácia „niečo“ robí, ale často je použitý aj z estetických, či reklamných dôvodov.

Hodnota fsStayOnTop zase nastavuje formulár tak, aby bol stále na vrchu, čiže aby bol zobrazený nad (pred) ostatnými oknami. To je užitočné najmä pri niektorých dialógoch, ktoré by nemali byť skryté za inými oknami, a tak ostať nepovšimnuté.

No a predvolená hodnota fsNormal udáva bežný formulár, ktorý je určený na všobecné použitie.

BorderStyle

bsSizeable

../../_images/sizeable.png

Formulár s týmto štýlom okraja je bežným oknom, ako ho poznáte aj z iných aplikácií, čiže formulár má titulkový pruh. V titulkovom pruhu je ikona okna, názov okna a tri tlačítka v pravom hornom rohu pre minimalizovanie, maximalizovanie a zavretie okna.

Súčasťou titukového pruhu je aj štandardné aplikačné menu, ktoré sa zobrazí pri kliknutí na ikonu formulára v ľavom hornom rohu.

Veľkosť takéhoto formulár možno meniť, či už ťahaním myšou alebo prostredníctvom systémového menu pre zmenu veľkosti.

Upozornenie

Hodnota bsSizeable je východzou hodnotou vlastnosti BorderStyle, čiže novovytvorené formuláre majú vyššie spomenuté vlastnosti.

bsNone

../../_images/none.png

Táto hodnota vlastnosti BorderStyle sa využíva napríklad pre formuláre, ktoré sú umiestnené vo vnútri iných formulárov. Veď si skúste predstaviť okno aplikácie, ktoré nemá okraje…

Všimnite si, že formulár nemá titulkový pruh a nemá ani žiadny okraj. Dôsledkom chýbajúceho titulkového pruhu a okraja je, menšia veľkosť formulára, ale nielen to.

Takýto formulár nemožno presúvať myšou za titulkový pruh (keďže ho nemá), ale nemá anisystémovémenu.

Upozornenie

A keďže nemá ani okraje, nie je možné ani meniť jeho veľkosť.

bsSingle

../../_images/single.png

Vytvára okno, ktoré má titulkový pruh aj okraje, podobne ako okno so štýlom formulára bsNormal. Ak sa pozorne pozriete na oba typy okien, všimnete si jeden rozdiel, a to deaktivované tlačítko pre maximalizáciu okna.

Je to preto, že veľkosť takéhoto formulára nie je možné meniť, ani ťahaním myšou za okraje, ani tlačítkom maximalizácie a deaktivovaná je aj možnosť Veľkosť v systémovom menu okna.

Takýto formulár sa môže zísť napríklad pre okná s riadiacimi prvkami, napríklad pre zadávanie dát. Zväčšením takéhoto okna by používateľ získal len prázdne miesto, čo by vzhľadu výslednej aplikácie iste nepridalo. Alebo naopak, ak by používateľ toto okno zmenšil, nemusel by vidieť všetky ovládacie prvky.

bsDialog

../../_images/dialog.png

Aj pomocou tohoto štýlu okrajov dostaneme okno, ktorého veľkosť nie je možné meniť. Ak sa pozorne pozriete na vzhľad takéhoto okna, uvidíte, že má titulkový pruh s ikonou a popisom aplikácie, ale chýbajú mu niektoré tlačítka v prvom hornom rohu. Okno má aj vizuálne okraje.

Upozornenie

Čiže takéto okno nemožno ani maximalizoavť a ani minimalizovať, možno len zavrieť.

Takýto typ okna je vhodný pre dialógové okné, ktoré má používateľ vybaviť a zatvoriť, nie sa s nimi pohrávať a prispôsobovať si ich. Ide napríklad o dialógy typu Áno/Nie, či Pokračovať/Zrušiť. Ale pri vymýšľaní ich využitia môžete pokojne nechať pracovať svoju tvorivosť.

bsToolWindow a bsSizeToolWin

../../_images/toolwindow.png
../../_images/sizetoolwin.png

Posledné dva typy okraja formulára sú predurčené pre vytváranie plávajúcich panelov nástrojov.

Takéto okná majú zmenšený titulkový pruh s popisom okna, ale nemajú ikonu okna ani tlačítka pre minimalizáciu, či maximalizáciu okna. Funkcie pre minimalizáciu a maximalizáciu však sú dostupné zo systémového menu okna, ku ktorému sa dostaneme pomocou kliknutia ľavým tlačítkom myši na titulkový pruh.

Upozornenie

Rozdiel medzi oknami s okrajom bsSizeTool a s okrajom bsToolWindow spočíva v tom, že okno bsSizeTool má meniteľnú veľkosť.