Živě.cz o počítačích a internetu

Tipy a triky v Delphi, díl 145. - TScreen

Jan Šindelář 30.6.2004

V jednom z předchozích dílů jsme narazili na objekt TScreen. Dnes si o něm povíme něco víc, takže i tento díl bude obsahovat informace především pro začátečníky. I ti pokročilejší z vás však mohou najít užitečné informace.

Co to vlastně je objekt TScreen? Stejně jako třeba formulář a nebo přímo objekt TApplication se jedná o jednu z tříd VCL. Je vytvořen automaticky až po spuštění aplikace a z toho logicky plyne i nemožnost s ním pracovat v době návrhu.

Jaké informace či metody nám poskytuje? Již podle svého názvu je jasné, že se vše bude točit kolem obrazovky. Obsahuje detailní informace o tom, v jakém prostředí naše aplikace běží, tedy převážně informace o rozlišení obrazovky, o jednotlivých formulářích a komponentách aplikace, ale i informace o dostupných fontech, kurzorech a podobně. A právě s využitím tohoto objektu můžeme i většinu těchto vlastností hromadně měnit pro objekty naší aplikace.

Ve stručnosti si teď popíšeme některé vlastnosti objektu TScreen a na konci článku pak najdete ukázkový projekt, kde si některé věci předvedeme v praxi.

Width a Height

Rozměry (rozlišení) obrazovky popisují tyto dvě vlastnosti. Jsou pouze ke čtení, takže jejich úpravou změny rozlišení nedosáhnete. Jednotkou je jeden pixel. A k čemu nám tyto hodnoty mohou být dobré? Například pro přesné umístění formuláře do určité pozice na obrazovce (třeba na střed). Příklad najdete ve zdrojovém kódu.

ActiveForm a ActiveControl

Zde můžeme zjistit, který z formulářů naší aplikace (pokud jich tedy máme více) je právě aktivní a dále který z objektů tohoto formuláře je aktivní (má focus). Jestli si vzpomínáte, právě vlastnost ActiveControl jsme použili pro náš příklad pro zjišťování pořadí "focusů" objektů formuláře v jednom z předchozích dílů.

ComponentCount, FormsCount, DataModulesCount, Forms

Opět nám název napovídá, k čemu jednotlivé vlastnosti slouží. Kromě zjišťování počtu komponent (formulářů, modulů) taky můžeme k jednotlivým formulářům přistupovat přes jejich názvy. Právě tyto číselné hodnoty nám poslouží, pokud chceme postupně v cyklu hromadně změnit vlastnosti nějakých (nebo všech) komponent. V ukázkovém příkladu si předvedeme zjištění názvů všech formulářů naší aplikace a dále pak hromadnou změnu titulku všech tlačítek.

Fonts, Cursors, Cursor

Pomocí těchto vlastností se dá opět velmi snadno změnit chování celé aplikace či jednotlivých komponent a to konkrétně jejich font a použitý kurzor. Vlastnost Fonts obsahuje seznam všech nainstalovaných fontů, Cursors zase použitelné kurzory. Ty lze pak globálně nastavit vlastností Cursor, ale pochopitelně lze poté přímo pro jednotlivé komponenty nastavit tuto vlastnost individuálně. Totéž platí pro font. V příkladu si načteme do ComboBoxu dostupné fonty a vybraný pak aplikujeme na text komponenty Memo. Přes tlačítko také budeme měnit jednotlivé kurzory včetně načtení kurzoru z externího souboru.

OnActiveFormChange, OnActiveControlChange

Tyto dvě události rovněž napovídají svým názvem o své funkci. Informují nás o změně aktuálního formuláře a komponenty. I tyto události, resp. OnActiveControlChange, jsme již použili ve zmiňovaném příkladu.

Celý projekt se všemi ukázkami použití zmiňovaných vlastností objektu TScreen si můžete stáhnout.