A turbo pascal szövegének titkosítása grafikus módban

Blog → A Turbo Pascal titkai: szöveg grafikus módban. 1. rész

Ebben a cikkben röviden bemutatom a Turbo Pascal 6.0 nyelvű programokban használt EGA / VGA grafikus módok szöveges interfészeinek programozását. Ha ismeri a Turbo-Pascal-t, sokkal könnyebb lesz megérteni a jegyzetben megadott kódot, de azok számára is, akik ismerik a többi programozási nyelvet, a cikk olvasása érdekes és informatív lehet. Tehát ne késleltessük a bevezetést, hanem azonnal folytassuk a kérdés lényegét.

Nem fogom megérinteni a szabványos szöveges eljárásokat a GRAPH.TPU modulból, részletes leírásukból, bárki megtalálhatja a szakirodalomban. Hadd vegye figyelembe, hogy a megjelenése ebben a szakaszban az eljárások miatt a prózai probléma a többszörös kimenet különböző szöveges üzenetek és a szabványos eljárásokat OutTextXY OutText, egy ugyanabban a helyzetben a képernyőn. Kinek nem kellett elkerülnie, hogy egy sor egy másik sorra kerüljön egymás után, mielőtt minden egyes következő szöveges kimenetet törölne az előző üzenetekből. Minden semmit, de ha ez történik gyakran, például ha megjelenítve az aktuális koordinátái az egérkurzort, akkor mindig ott van a vibrálás hatását. Ennek oka az előfordulása, hogy OutTextXY OutText eljárások és rajz csak a pixelek a karakter, változatlanul hagyva háttér pixelek jellegű mátrixban. A legjobb módja az ilyen helyzetekből - váltás megjeleníti a szöveget a képernyőn együtt alkotó képpontok a karakter maga és a háttér pixelek jellegű mátrixban. Ebben a részben megmutatom, hogyan kell ezt csinálni.

A képernyőn megjelenő szimbólum a szimbólum négyszögletes mátrixában lévő bizonyos sorrendben elrendezett képpontokból áll. A sor felső vonalán vonalban húzódik; annak magasságát a mátrixban lévő sorok száma határozza meg, és a szélesség általában 8 képpont vagy 1 byte (ezek az eljárások pontosan erre a szélességre számítanak). A szimbólumok szimbólumai az úgynevezett szimbólumleírási táblázatban (TOC) találhatók. Az asztal minden byte-ja egy kicsit húr karakteres karakterlánc, ezért a TOC-ban lévő minden egyes szimbólum a szimbólummagassággal megegyező bájtok számával jellemezhető. A táblázat szimbólumai ASCII kód ​​szerint egymás után vannak elrendezve, így könnyen kiszámítható a szimbólum-eltolás a TOC kezdetéhez képest (a magasság szorozva a szimbólumkóddal).

Mindegyik készlet bit a bitminta jelenlétét jelzi egy kép pixel (vagyis, pixel szerepel a szimbólum önmagában) alatt a megfelelő sorban a mátrix szimbólum (lásd a rajzot -. Befejezve összhangban a TOC tartalmának, a pixel mátrix mérete 8x8 szimbólumok).

A turbo pascal szövegének titkosítása grafikus módban

GrafText egység;
felület

használja a Dos, VC_Graph;
Típus GrfFnt = bájt [l..l];

Var TextForeColor, TextBackColor, TextLogGlb. byte;
SegFontTabde, OfsFontTable. szó;
CharRow. byte;
FontLoaded. logikai;
FointsBIOS. byte abszolút $ 40: $ 85;
GrafFont. ^ GrfFnt;

Const ROMFont8x8 - 1;
ROMFontl4x8 - 2;
ROMFontl6x8 - 3;
Russian8x8 - 4;
FileFont - 5;
RussianFont: array [1..8 * 256] byte

VSetFonlType (2, '');
VSetTextColor (15,9,0);
VOutTextXY (l () 4,25,
'VSetTextColor eljárás (ForeColor, BackColor, TextLog);');
I: = 0-15
kezdődik

VSetTextColor (1,15-I, 0);
VOutTextXY (104,80 + I * 15,
'VSetTextColor eljárás (ForeColor, BackColor, TextLog);');

readln;
ClearViewPort;
VSetTextColor (15,9,0);
VOutTextXY (104,25,
VOutCharXY eljárás (CharCode, X, Y, ForeColor, BackColor);
I: = 0-15
J: = 0-15
kezdődik

Lehetőség van, hogy fokozza a képességét, eljárások, például átírni őket a kimenő karakterek változó szélességű vagy olvasást bitmapként TOC voltak jobbra tolódott egy bizonyos számú pixel, vagy generáló zsíros dőlt karaktereket. Az ilyen funkciók bármelyike ​​növeli a szoftver karaktergenerátor hatékonyságát és rugalmasságát, de bonyolítja a forráskódot, és végső soron lassítja.