Barvy na monitoru počítače

 

 

Vhodná volba barev má pozitivní vliv na výkonnost uživatele a patří neodmyslitelně k vytváření uživatelského komfortu. FoxPro má hezké, vyladěné soupravy barev. Jejich časté používání však působí fádním dojmem a programátor se velice brzy rozhodne vytvářet nové soupravy nebo alespoň původní soupravu modifikovat. Barevná schémata se rychle ladí pomocí speciálního nástroje COLOR v menu WINDOW. Pro pochopení práce s barvami nutno definovat několik pojmů.

Párování barev

Pár barev (Color Pair) je dvojice barev, oddělená lomítkem. První barva je barvou písma (popředí), druhá barvou pozadí. Barvy se určují pomocí prvního písmena názvu základní barvy: B(Blue), G(Green), R(Red). Zbývající barvy se tvoří kombinacemi základních barev. Kombinace jsou aditivní. Bílou barvu by bylo možné získat sloučením všech tří základních barev, v předepsaném poměru. To je obtížné pro vyjadřování a proto se pro bílou barvu zvolil znak W (white).

 

Barvy: 
       černá    - N     purpurová    - RB    
       modrá    - B     tyrkysová    - BG    
       zelená   - G     bílá         - W     
       červená  - R     žádná        - X     
       hnědá    - GR    žlutá        - GR+   

 

Poznámky:

Znaku X je vhodné použít pro zápis hesla (náhodný divák ho nevidí). Kromě toho lze předepsat znak + pro zvýšení jasu (světlejší písmo) a znak * pro mrkání (používat pouze pro důrazná varování). Znak + zvyšuje intenzitu písma, ať je uveden před nebo za lomítkem. Podobně znak blikání. Rozdíl intenzit je tak velký, že se běžně programují dvojice W+/W. Při zadávání dvojic barev lze též použít znaku I pro inversní zobrazení.

Pořadí znaků barev lze přehodit, např. RG (hnědá), RG+ (žlutá), GB (tyrkysová), BR (purpurová) a lze použít i kombinací WB, RW, atd. Písmena U (underline) se používá při požadavku podtrženého písma (vhodné pro monochromní obrazovky).

Seznamy párů barev

Seznam párů barev (Color Pair List) je tvořen jedním nebo více páry, oddělenými čárkou.

Například:W+/B,W+/BG,GR+/B,GR+/B,R+/B,W+/GR

Podle pořadí v seznamu jsou páry barev vztaženy ke:

1. zobrazovanému textu, nepřístupným prvkům, SAY (normal)

2. přístupným prvkům, GET, editačním prostorům (enhanced)

3. rámečkům (borders, box)

4. názvům, titulkům aktivních oken, menu (titles)

5. hlášením, titulkům ostatních oken (messages)

6. zvýrazněným prvkům (selected)

7. hodinám, aktivačním znakům (hot keys)

8. stínům (shadows)

9. přístupným ovladačům (enabled control)

10. nepřístupným ovlad. (disabled contr.)

Uvedené rozložení vztahů je obecné. V konkrétních schématech mohou dvojice barev mít specifický význam. Přehled je uveden na konci přednášky.

 

Schémy barev

Schéma barev (Color Scheme) je seznam deseti barevných párů, který u osmého prvku může mít místo barevného páru - (mínus, beze stínu, významné u monochromatických monitorů). Za desátým párem může být znaménko + ve významu "se stínem" nebo - ve významu "bez stínu". Schémata barev se vztahují k jednotlivým zobrazovaným objektům (okno, menu, dialog, apod.). Proto příkazy pro definování objektů dovolují volbu barevného schématu. Schémata barev lze zadávat v konfiguračním souboru CONFIG.FP. (Color Of Scheme <výrazN> = <seznam párů barev>). Schémata se číslují (v rámci jedné soupravy barev 1 až 24). Schéma se od seznamu odlišuje tím, že obsahuje právě deset dvojic.

 

Prvních 12 má standardní použití, z nichž programově jsou zajímavé: 
    scheme 1 -  uživatelská okna      scheme 3 -  menu bar               
    scheme 2  - uživatelská menu      scheme 4 -  menu popup             

Soupravy barev

Souprava barev (Color Set) je tvořena 24 barevnými schématy. Systém může obsahovat více souprav barev. Soupravy se odlišují pojmenováním. Aktuální stav každé soupravy barev se automaticky pamatuje v souborech FOXUSER.DBF a FOXUSER.FPT (viz příkazy SET RESOURCE). Prvních 12 schémat je barevně sladěno a doporučeno. Nejsou pojmenovaná, ale číslovaná. Nedejte se oklamat programovacími pomůckami. Tam je kvůli srozumitelnosti použito označení (zkrácené použití). Zbývající schémata jsou určena uživatelům k tvůrčím pokusům.

 

 V programu      Označení              Použití               
──────────────────────────────────────────────────────────── 
   schéma 1     User Wind    uživatelsky definovaná okna     
   schéma 2     User Menus   uživatelsky definovaná menu     
   schéma 3     Menu Bar     řádková menu                    
   schéma 4     Menu Pops    popup menu                      
   schéma 5     Dialogs      dialogy                         
   schéma 6     Dlog Pops    popup v dialozích               
   schéma 7     Alert        výstrahy                        
   schéma 8     Windows      systémová okna                  
   schéma 9     Wind Pops    popup v systémových oknech      
   schéma 10    Browse       okno Browse                     
   schéma 11    Report       okno generátoru sestav          
   schéma 12    Alert Pops   popup ve výstrahách             

 

Je nutné programově předcházet fatálním situacím, kdy některé informace nejsou vidět (například červené písmo s modrým pozadím je neviditelné na monochromatických monitorech).

V programátorské praxi se často postupuje tak, že se vyladěná schémata barev uloží pomocí funkce SCHEME() do uživatelského konfiguračního souboru CONFIG.FP nebo přímo do programu. Vyladění schématu, ve složitějších úlohách, nestačí. Nutno barevně sladit navzájem veškerá použitá schémata - vyladit soupravu. K tomu se používá specializovaného nástroje, který je dosažitelný přes menu WINDOWS, volba COLOR. Umožňuje postupné vyladění schémat. Jeho obsluha je velice jednoduchá. Pokud nechceme pracovat se standardní soupravou, pak jako první si zvolíme nějakou výchozí soupravu barev pomocí tlačítka <LOAD>. V pravém horním rohu je překrývané okno se seznamem schémat. V něm zvolíme schéma, které chceme vidět nebo upravovat. Barvy vidíme v oknech levé horní čtvrtiny obrazovky. Tato okna slouží pouze jako vzor. Pomocí výběrového menu (rádiové knoflíky) zvolíme dvojici barev, kterou chceme modifikovat. Mezerníkem se na paletě barev, umístěné ve spodní části obrazovky oživíme značku » « (tím umožníme její přesouvání). Značka ukazuje aktuální dvojici barev. Posouváním značky volíme jinou dvojici a důsledky svého počínání pozorujeme na vzorových oknech. Potvrzování, jako vždy, se provádí klávesou ENTER. Po ukončení práce nutno soupravu zapsat, i když jen dočasně, do souboru FOXUSER. Zápis se aktivuje tlačítkem <SAVE> a provede po pojmenování soupravy.

Soupravu barev lze, podle aktuálního nastavení, vytvořit též pomocí příkazu

 

CREATE COLOR SET <sada barev>

 

který všechna aktuální schémata uloží do sady barev pojmenované <sada barev> (max. 10 znaků). Sada barev je uložena ve zdrojovém souboru FoxPro (resource file - FOXUSER).

Použití soupravy uložené v souboru FOXUSER se programuje příkazem:

 

SET COLOR SET TO [<jméno soupravy barev>]

 

Příkaz zavede dříve definované soupravy barev.

Toto je ve firemní literatuře doporučovaný postup. V praxi se však neosvědčil. Není zcela bezpečný. Hodí se pouze pro fázi vývoje programů. FOXUSER je uživatelský soubor a nelze spoléhat, že každý z uživatelů ho bude mít ve stejném stavu jako programátor. Vhodnější, i když komplikovanější postup, je získat ze soupravy používaná schémata funkcí:

 

SCHEME(<expN1> [, <expN2>])

 

Funkce vrátí dvojici barev nebo seznam dvojic barev ze schématu barev. <výrazN1> určuje pořadové číslo schématu barev. <výrazN2> určuje pozici páru barev. Není-li pozice uvedena, je vráceno celé schéma. Schémata je vhodné uložit do souboru úlohy nebo přímo do programu. Zde nejde u ukládání dat do programu. Barvy jsou součástí programu!

 

?scheme(13) W+/B,W+/BG,GR+/R,GR+/B,R+/B,W+/GR,GR+/RB,N+/N,GR+/G,R+/B

?scheme(13,3)

GR+/B

 

Příklad úschovy schématu číslo 18 a jeho využití

 

sh18=sche(18)                                   && Úschova

set color to &sch18

Použití barev

V předchozím příkladě bylo použito příkazu, který předá požadované nastavení barev grafické kartě. Je to příkaz:

 

SET COLOR TO <seznam párů barev>

 

Příkaz nastaví barvy podle prvních tří prvků seznamu.

Nastavení barev se převážně programuje jako makrosubstituce. Dříve to byl často se vyskytující příkaz. V nových programech se vyskytuje jen sporadicky, jelikož takřka všechny příkazy výstupu na monitor umožňují přímé zadání barev.

 

color1='W+/B,W+/BG,GR+/B'

mono1='W+/N,N/W,W+/W'

...

set color to &color1

...

set color to &mono1

 

Samozřejmě lze programovat malé změny barev i přímo

 

SET COLOR TO W/N,W+/w

 

Soupravy barev a monitor

Programy musí být nezávislé na typu monitoru. Tím se zajistí jejich snadná přenositelnost. Podle typu monitoru se automatizovaně rozhoduje o způsobu použití barev či odstínů šedi. Test barvy monitoru se programuje funkcí:

 

ISCOLOR()

 

Funkce vrátí .T., pokud je připojen barevný monitor. Jestliže je monitor monochromatický, vrátí.F.

Příklad automatického přizpůsobení programu podle typu monitoru. Soupravy barev nutno předem připravit.

 

IF ISCOLOR()

SET COLOR SET TO color               && Nastavení barevné soupravy

ELSE

SET COLOR SET TO mono              && Nastavení soupravy odstínů šedi

ENDIF

 

Výše uvedený postup je vhodný při vývoji programu. Je-li nutno změnit schéma v průběhu programu, pak se doporučuje použít příkazu:

 

SET COLOR OF SCHEME <výrazN1> TO [<seznam_párů_barev>]

TO [SCHEME <výrazN2>]

 

Příkaz slouží k úpravám barev ve schématu barev nebo překopíruje jedno schéma do druhého. Nezměněné páry barev se v seznamu nemusejí uvádět, stačí zapsat oddělovač. <výrazN1> hodnoty 1 až 10 nebo 17 až 24. <seznam> až 10 párů barev.

Změna barvy rámů (3. pár) ve schématu číslo 1:

 

SET COLOR OF SCHEME 1 TO ,,W/N+

 

Nastavení schématu barev podle standardní hodnoty nebo podle hodnoty zadané v CONFIG.FP se programuje bez uvedení vzoru, například:

 

SET COLOR OF SCHEME 3 TO

 

Analogický je i příkaz, který nepožaduje znalost umístění význačných (nejčastěji modifikovaných) dvojic barev a určuje ji popisem:

 

SET COLOR OF NORMAL | MESSAGES | TITLES | BOX | HIGHLIGHT |

INFORMATION | FIELDS TO [<dvojice barev>]

 

Určí barvy pro prvky uživatelských oken a menu.

NORMAL - standardní texty,

MESSAGES - zprávy, (nápověď),

TITLES - názvy oken nebo menu,

BOX - rámečky,

HIGHLIGHT - zvýrazněné texty,...

 

Speciální způsoby zobrazování

Při speciálních způsobech zobrazování potřebujeme v programem zjistit nejen barevnost monitoru, ale i typ grafické karty. V tomto případě použijeme funkce:

 

SYS(2006)

 

Funkce vrátí typ grafické karty a monitoru. Všimnete si tvar vráceného řetězce.

 

?sys(2006)

VGA/Mono

 

Naopak, nastavení zobrazovacího modu u monitorů, které nastavení povolují se programuje příkazem

 

SET DISPLAY TO CGA │ COLOR │ EGA25 │ EGA43 │ MONO

│ MONO43 │ VGA25 │ VGA50

 

Příkaz slouží k nastavení zobrazovacích modů u monitorů, které podporují více zobrazovacích modů. Pozor, při nastavení VGA50 ( dvojnásobný počet řádků než VGA25) nefunguje čeština řízená programem VGACS.

Tlumení obrazovky - Mrkání a intenzivní jas obrazovky jsou velice nepříjemné. Může se stát, při ladění, že úloha havaruje v okamžiku nastavení zvýšeného jasu nebo mrkání. Na dobu odstranění závady lze tlumit původní funkci obrazovky příkazy:

 

SET BLINK ON │OFF

 

Když je nastaven na ON, mohou zobrazované prvky (rámečky, stíny, texty, apod.) mrkat.

 

SET INTENSITY ON │OFF

 

Příkaz zapíná nebo vypíná atribut zvýšeného jasu obrazovky pro vkládání do pole.