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:
ImageInit( 50, 200);
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:
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 Φty°·helnφk:
ImageMoveTo( 10, 10); { p°esun na poΦßteΦnφ bod }
ImageLineTo(100, 10); { hornφ hrana }
ImageLineTo(100, 100); { pravß hrana }
ImageLineTo(100, 10); { spodnφ hrana }
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:
ImageTextOut(10, 10, 'OZOGAN');
ImageTextOut(10, 30, 'KLONDAIK');
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:
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) |