předchozí lekce (1.07) | obsah kurzu | následující lekce (1.09) |
Až dosud jsme měli velikost grafické plochy nastavenou vždy podle toho, jak veliké bylo
grafické okno v okamžiku aktivace grafické plochy. Další změnou velikosti grafického
výstupního okna se již velikost grafické plochy neměnila. Pokud proto potřebujete
nastavit velikost grafické plochy na požadované rozměry, můžete tak učinit povelem
ImageInit. Povel inicializuje grafické okno a nastaví jeho velikost na rozměry zadané
parametry. Nastaví současně bílou barvu plochy, styl štětce pro plně vybarvené plochy,
černou barvu pera, sílu čáry na jeden bod. Inicializací se provede výmaz původního
obsahu grafického okna. Vyzkoušejte si například následující hodnoty:
Call ImageInit( 50, 200)
Call ImageInit(120, 60)
Pokud potřebujete znát parametry již inicializované grafické plochy, můžete použít
dotazu ImageGetMaxX a ImageGetMaxY, který vrací velikost grafické plochy zadané
strany. Pokud budete například potřebovat vykreslit bod uprostřed grafické plochy bez
ohledu na velikost aktuálně inicializované plochy, můžete tak učinit povelem:
Call ImagePoint(ImageGetMaxX/2, ImageGetMaxY/2, 5)
V některých případech by bylo vhodné kreslit čáry do grafické plochy zadáváním v
absolutních přírůstkových hodnotách místo přesné definice souřadnic. Proto je v
grafickém okně definován tzv. grafický ukazatel, který zaznamenává pozici vykreslení
posledního bodu. Poloha grafického ukazatele se při použití některých povelů
automaticky mění. Je možné ji nastavit i z programu povelem ImageMoveTo. Čáry je
možné potom zadat povelem ImageLineTo definicí konečného bodu. Využitím
uvedených povelů je možné například nakreslit libovolný mnohostranný mnohoúhelník.
Vyzkoušejte si následující povely, které by měly v grafické ploše nakreslit postupně
čtyřúhelník:
Call ImageMoveTo( 10, 10) 'přesun na počáteční bod
Call ImageLineTo(100, 10) 'horní hrana
Call ImageLineTo(100, 100) 'pravá hrana
Call ImageLineTo(100, 10) 'spodní hrana
Call ImageLineTo( 10, 10) 'levá strana
Až dosud jsme důsledně dodržovali, že je možné textové informace vypisovat zásadně
do textového výstupního okna a grafické informace do grafického výstupního okna. Je
však možné provádět výstup textových informací i do grafického okna. Nelze přitom
použít povelu Writeln, se kterým jsme se již dříve seznámili. Zobrazovat lze pouze
textové informace. Čísla je nutné předem převést na řetězce. K výstupu textových
informací se používá povelu ImageTextOut. Jako parametry povelu se udávají souřadnice
pro zobrazení textu v grafickém okně a řetězec, který se má zobrazit. Povel si můžete
vyzkoušet například následujícími příklady:
Call ImageTextOut(10, 10, "OZOGAN")
Call ImageTextOut(10, 30, "BONANZA")
Text se při použití povelu TextOut vypisuje předdefinovaným fontem. Jeho změna se
provede buď nastavením přímo z grafického výstupního okna, nebo povely
ImageFontColor (barva fontu), ImageFontName (jméno fontu), ImageFontSize (velikost
fontu) a ImageFontStyle (styl fontu).
Při nastavení barvy fontu se zadává u povelu ImageFontColor jako parametr buď číslo
barvy, nebo jméno konstanty udávající barvu. Tabulka hodnot barev je stejná jako pro
nastavení barvy čar a ploch. U povelu ImageFontName, který nastavuje jméno fontu se
uvádí přímo jméno fontu. Pokud není zadané jméno v systému Windows dostupné,
použije se font s podobným jménem. Velikost fontu se uvádí v povelu ImageFontSize
přímo požadovanou hodnotou. Příklad možných nastavení si prozkoušejte včetně výpisu
textu po každé změně parametrů fontu:
ImageFontColor(clRed) 'nastaví červenou barvu fontu
ImageFontColor($00FFFF) 'nastaví žlutou barvu fontu
ImageFontName("Arial CE")'nastaví font Arial CE
ImageFontSize(12) 'nastaví velikost fontu 12 bodů
Pro nastavení stylu fontu se v povelu ImageFontStyle požívají jako parametr
předdefinované hodnoty jednotlivých stylů. Uvádí se součet hodnot požadovaného
výsledného stylu:
------------------------------------------
hodnota konstanta popis stylu
------------------------------------------
0 fsNormal normální písmo
1 fsBold tučné písmo
2 fsItalic nakloněné písmo
4 fsUnderline podtržené písmo
8 fsStrikeOut přeškrtnuté písmo
------------------------------------------
Pro nastavení nakloněného podtrženého písma můžete zadat jednu z následujících
možností:
ImageFontStyle(2 + 4) 'součet hodnot
ImageFontStyle(6) 'součet 2 + 4
ImageFontStyle(fsItalic + fsUnderline) 'uvedení konstanty
Pokud budete potřebovat převést nakreslený obrázek přes schránku Windows
(clipboard) do jiné aplikace, můžete tak provést pomocí povelu ImageToClip, kdy se
převede do schránky Windows najednou celá plocha grafického výstupního okna.
Načtení obsahu schránky se provádí povelem ImageFromClip, kdy se jako parametry
uvedou souřadnice ohraničené plochy, kam se má obsah schránky převést. Pokud
budete chtít převést obsah schránky Windows na celou plochu grafického okna, zadejte
příkaz:
Call ImageFromClip(0,0,ImageGetMaxX, ImageGetMaxY)
Někoho z vás již určitě napadlo, že výše uvedené povely, pomocí kterých můžete
převádět obrázky do schránky a načítat zpět ze schránky by bylo možné použít na
přesun části obrázku na nové místo. Na to je ale výhodnější použít samostatného
povelu ImageMove, který provede obě akce najednou. Zadáváte přitom jako parametry
souřadnice místa, odkud se má načtení provést a souřadnice, kam se má plocha
přenést. Neodpovídá-li přitom poměr stran zdrojové a cílové plochy, nebude zkopírovaný
obraz uříznut, ale bude upraven (deformován) do zadaných souřadnic. To je možné využít
k mnoha zajímavým efektům. Například ke zvětšení části plochy apod.
Někteří jste již možná netrpěliví, kdy se začne programovat. Místo programování jsme zadávali pouze povely do příkazového okna. Tím jsme se vás snažili naučit nejprve používat několik základních povelů programovacího jazyka. Pokud by jsme začali ihned se základy programování včetně popisu použití povelů bylo by toho najednou moc. Proto jsme si nejprve probrali základy používání povelů a příkazů jazyka a v příští kapitole již začneme opravdu programovat.
předchozí lekce (1.07) | obsah kurzu | následující lekce (1.09) |