Előző számunkban megígértem, hogy
készítünk egy szép gombot, mert a karakterátírás eredménye képen a gombunk
árnyéka helyett jobb oldalt az egér nyila jelent meg. Lássuk a problémát
miről van szó:
Ott van a #220-as karakter mely egy téglalap s az alsó fele kitöltött:
Ugyanakkor van egy hasonló a #223-as karakter mely így néz ki:
Láthatjuk, hogy egyik a másik inverze így az egyiküket átírhatjuk legyen
ez a #220-as.
Így ha szükség lenne a #220-as alul kitöltött karakterünkre, akkor nem kell mást tennem a #223-as karakter kiíratásakor, mint az előtér- és háttérszínét fordítva megadni. Az-az tegyük fel, hogy $F1 szín? karaktert akartam kiírni. (Fehér háttér, fekete bet?k. /Ohh fekete – fehér ? PVSK Dália Női Kosárlabda NB I !!! Hmm már megint bajnok lett .../) Tehát ha #223-as karakternek a kívánt színt fordítva adjuk meg, az-az az előtérszín lesz a háttér és fordítva, akkor úgy látjuk, mintha a #220-as karakter lenne kiírva. (Tehát a #223-as színe, pontosabban szín attribútuma legyen $1F.)
Persze nem csak így nyerhetünk karaktert. Amikor még réges – rég írtam ezt a Turbo Vision átírást akkor ippeg, hogy elfogyott az utolsó átírható keretkarakterem is és még volt pár olyan szimbólum ami nem volt még szépen megrajzolva. Ilyen volt, pl. az ablak visszaméretezésére szolgáló restore gomb, az ablak jobb felső csücskében. Úgy terveztem, hogy a Windows-hoz hasonlóan két háromszögecske fogja jelenteni. Ehhez két karakter kellet volna, pláne keretkarakter. Mivel ilyen nem volt kénytelen voltam gondolkodni.
Láthatjuk, itt az első része a restore-gombnak
és ha ezt invertáljuk akkor szépen beleolvad az ablak fejlécébe, valahogy
így:
A 8-9. oszlop pedig teljesen fehér lesz. A 8. azért, mert az eleve üres
volt és ezt az üreset invertáltuk, a kilencedik meg ugye mindig üres a
NEM keretkarakterek esetében így azt invertálva megint teljesen fehér oszlopot
kapunk. A restor-gomb másik fele is hasonlóan megy a negatívot rajzoljuk
meg. Mivel invertálgatósdit játszunk még azzal se kell törődnünk,
hogy: jaj vajon a nem keretkarakter esetében a 9. oszlop üres marad –e
? Hisz invertáljuk, és a 9. oszlop szép teli (itt fehér) lesz, így bele
olvad az ablak fejlécébe.
Tehát eme maratoni eszmefuttatásból annyi a konklúzió, hogy nem köll
betojni, ha elfogyott a keretkarakter hanem gondolkodjunk inkább. Továbbá,
ha olyan karakterre van szükség melynek a teljes 9. oszlopa feltöltött
akkor inkább negatívban rajzoljuk meg ahelyett, hogy agyba-főbe
csak keretkaraktereket használnánk.
Persze ez még korántsem ilyen egyszerű
!
Az szép és jó, hogy mi ügyesen meg tudtuk rajzolni negatívban a karaktert,
csak akkor azt INVERZEN is KELL KIRAJZOLNI. Ezt a Turbo Vision-nek is meg
kellene mondani. Persze a ciki ott van hogyha új színben akarunk egy elemet
kirajzolni s az a szín még nem létezik az adott palettán akkor új elemet
kell létrehozni a kívánt színnel. (Mely persze az applikáció fő
palettájára mutat, s ha az applikációnak sincs ilyen színe akkor ott is
újat kell létrehozni.)
Szóval láthatjátok van probléma elég. De nem vagyok olyan gonosz, hogy
elhitessem veletek nincs egyszer?bb megoldás. Mit is mondtunk ? Arról volt
szó, hogy az előtér szín lesz a háttérszín,
s fordítva.
Mivel nekünk nincs villogás (7. attribútum bit) bit-ünk így a karakter
szín attribútum byte-jának felső négy
bit-jét kell az alsó 4 bit helyére mozgatni, s az alsó 4-et a felső
4- helyére. Valahogy így: