SUBROGRAME ORIENTATE SPRE TEXTE, Aplicatie, Probelma rezolvata



SUBROGRAME ORIENTATE SPRE TEXTE


9.1 Proceduri si functii


Set text Style




Procedura SetTextStyle defineste foma caracterelor textului ce se vor utiliza la scrierea textelor, directia de scriere precum si dimensiunea caracterelor.

Procedura este definita astfel:

Procedure SetTextStyle(font:word;dir:word;dimcar:word);

Font defineste numarul seturilor de caractere, dir stabileste directia de scriere, iar dimcar dimensiunea caracterelor.

Variabila font poate sa ia urmatoarele valori:

Const

DefaultFont=0 ;

TriplexFont=1;

SmallFont=2;

SansserifFont=3;

GothicFont=4;

Caracterele implicite sunt desemnate de constanta Default-Font. Celelate tipuri de caractere sunt depuse in fisiere de tip *.CHR.

In cazul in care aceste fisiere nu se gasesc vor fi utilizate caracterele implicite chiar daca variabila font arata o alta valoare.

Variabila dir de tip word stabileste directia scrieri si poate sa ia urmatoarele valori:


Const

HorizDir=0;

VertDir=1;

HorizDir stabileste scrierea de stanga la dreapta;

VertDir stabileste scrierea de jos in sus.

Valoare implicita este HorizDir.

Variabila DimCar de tip word fixeaza dimensiunea caracterelor: valoarea n=1 inseamna marimea normala (implicita) a caracterelor,valoarea n>1 inseamna marirea de n ori a dimensiunii implicite.

Aceasta variabila poate sa ia si valoarea predefinita UserCharSize, caz in care dimensiunea implicita poate fi modoficata de procedura SetUserCharSize.

SetUserCharSize

Procedura SetUserCharSize este definita astfel:

ProcedureSetUserCharSize(multx,divx,multy,divy:word);

Latimea normala este inmultita cu valoarea raportului Multx:Divy,iar inaltimea noramala este imultita cu valoarea raportului MultyDivy. Prin fixarea acestore parametri utilizatorul poate sa defineasca inaltimea si latimea proprie a caracterelor speciale.       

SetTextJustify

Procedura SetTextJustify fixeaza valorile de aliniere ale textului. Aceste valori sunt utilizate de procedurile de editare propriuzise. Procedura este definita astfel:

Procedure SetTextJustify(oriz,vert:word);

Oriz stabileste alinierea orizontala;

Vert alinierea verticala.

Penbtru stabilirea alinieri pot fi utilizate urmaatoarele constante predefinite:

Const


LeftText=0;

CenterText=1;

RighText=2;


BottmText=0;                 

CenterText=1;                 

TopText=2;
GetTextSettings

Procedura GetTextSetting retuneaza numarul setului de caractere, directia de scriere dimensiunea caracterelor valoarea alinieri verticale si orizontale utilizate actual.

Procedura este definita astfel:

Proceduere GetTextSettings(var infotext:TextSetingsType);

Infotext este de tip predefinit TextSetingsType si va contine informatii referitoare la text.

Tipul este definit astfel:

Type TextSettingsType=record

Font:word;

Direction:word;

Charsize:word;

Horiz:word;

Vert:word;

end;

TextHeight

Functia TextHeight returneaza inaltomea unui lant de caractere in puncte imagine (pixeli).

Functia este definita astfel:

Function TextHeight (lc:string):word;

Lc reprezinta lantul de caractere.

TextWidth

Functia TextWidth returneaza latimea unui lant de caractere in pixeli.

Functia este definita astfel:

Function Textwidht (lc:string):word;

Lc reprezinta lantul de caractere.

OutText

Procedura OutText trimite un sir de caractere la dispozitivul standard de iesire cordonatele punctului de inceput al textului fiind determinata de pozitia pointerului actual.

Textul scris va apare conform informatiilor stabilite de procedurile SetTextStyle,SetUserCharSize si SetTextJustify.

Procedura este definita astfel:

Procedure OutText (lc:string);

Lc contine textul ce se va scrie.

OutTextxy

Procedura OutTextxy trimite un sir de caractere la dispozitivul standard de iesire, coordonatele punctului de inceput al textului sunt determinate de coordonatele (x,y) ale ecreanului (si nu de pozitia pointer-ului actual).

Textul scris va apare conform informatiilor stabilite de procedurile SetTextStyle, SetUserCharSize si SetTextJustify.

Procedura este definita astfel:

Procedure OutTextxy (x,y:integer;lc:string);

Lc contine textul ce se va scrie .




9.2Aplicatie


Programul texte arata modul de folosire a procedurilor si funtiilor de utilizare a caracterelor in modul grafic, setarile acestora, marimea de scriere a caracterelor si ditectia de scriere.

Program texte;

Uses CRT,GRAPH;

Var gd,gm:integer;

Y,Size,linie:integer;

Begin

GD:=detect;

InitGraph(gd,gm,`c:bpbgi`);

If GraphResult<>grOK then

Halt(1);

Y:=0;

For size:=1 to 4do

Begin

SetTextStyle(DefaultFont,HorizDir,Size);

OutTextXY(0,y,`size= `+Chr(Size+48));

Inc(YtextHeight(`H`)+1);

End

SetTextStyle(DefaultFont,HorizDir,1);

SetTextJustify(CenterText, CenterText);

OutTextXY(Succ(GetMaxX)div2,Succ(GetMaxY)div2,`Textul centrat in centrul ecranului`);

ReadKey;

ClearDevice;

SetTextJustify(CenterText,CenterText);

OutTextXY(Succ(GetMaxX)div2,GetMaxY-10,`textul centrat in partea de jos a ecranului`);

ReadKey;

ClearDevice

SetTextJustify(CenterText, CenterText);

OutTextXY(Succ(GetMaxX)div2,10,`textul centrat in partea de jos a ecranului`);

Readln;

CloseGraph;

End.