DEFINIRI DE FERESTRE SI PAGINI, Proceduri si functii



DEFINIRI DE FERESTRE SI PAGINI

Anumite echipamente permit utilizarea facilitatii de paginare, foarte utile la aplicatii de gen animetii, existand posibilitatea de a modufica paginile vizibile precum si cele active.

3.1. Proceduri si functii



SetVizualPage

Procedura SetVizualPage fixeaza pagina vizuala. Procedura este definita astefel:

Procedure SetVizualPage (nrpag: word);

Nrpag defineste numarul paginii vizuale.

SetActivePage

Procedura SetActivePage fixeaza pagina activata pentru echipamentul grafic de iesire. Procedura este definta astfel:

Procedure SetActivePage (Nrpag: word );

NrPag defineste numarul paginii active.

SetViewPort

Prin fereastra se intelege o zona dreptunghiulara a ecranului, care in particular poate sa conincida cu intregul ecran. Procedura ViewPort are ca efect ca toate comenzile de desenare / scriere sa opereze in regiunea rectangulara definita. Toate inscrierile pe ecran se refera la ferestra actuala, pana la o noua schimbare a ferestrei. Ptrocedura este definita astfel:

Procedure SetViewPort (x1, x2, y1, y2: integer; Clip: boolean);

X1, Y1 sunt coordonatele absolute stanga sus ale ferestrei active;

X2, Y2 sunt coordonatele absolute dreapta jos ale ferestrei.

Variabila boolena clip defineste daca liniile din afara ferestri sunt sau nu vizibile.

Constantele predefinite pentru stabilirea valorii variabilei Clip sunt utmatoarele:

Const

ClipOn:=True; -taierea este activa; exterior invizibila;

ClipOff:=false; -taierea este pasiva; exterior vizibil;

GetViewSetting

Procedura GetViewSetting permite ca utilizatorul sa obtina informatii referitoare la fereastra actuala si felul taierii. Procedura este definita astfel.

Procedure SetViewSetting (var infofer: viewporttype);

Variabila infofer este de tip predefinit ViewPortType va contine informatiile referitoare la fereastra. Tipul ViewPortType este definit astfel:

Type WiewPortType:= record;

X1, Y1, X2, Y2: Integer;

Clip:boolean;

End;

ClearDevice

Procedura ClearDevice sterge ecranul grafic actual si pozitioneaza pointe-ul actual in pozitia (0, 0), culoarea este determinta de procedura SetBkColor. Procedura este definita astfel:

Procedure ClearDevice;

ClearViewPort

Procedura ClearViewPort sterge fereastra grafica actuala. Culoarea fere estrei va fi culoarea de fond, este apelata procedura Bar pentru trasarea unu dreptunghi corespunzator ferestrei si pointer-ul actual este mutat in coltul stanga sus al ferestrei; de coordonate relative (0, 0). Procedura este definita astfel:

Procedure ClearViewPort;



3.2. Aplicatia


Programul ferpag demosntreaza lucrul cu pagini si ferestre grafice.

Program ferpag;

uses Graphcrt;

var gd, gm, i: integer;

begin

gd:detect;

initgraph(gd, gm, 'c:bpbgi'

if graphresult <> grOk then

halt (1);

if gd = vga thne

begin

i:-0l

repeat

setactivepage (0);

setcolor(i);

rectangle (20, 40, 100, 200);

setvisualpage(0)l

i:=i+1;

if i=16 then i:=0 ;

until Keypressend;

end

else

outText(,paginarea nu este suportata.');

cleardevice;

setbkcolor(3);

rectangle(20, 20, 300-20, 200-20);

setViewPort(21, 21, 300-21, 200-20, clipOn);

repeat

OutTextXY(0, 0, ,<1> sterge fereastra actuala:');

OutTextXY(10, 10, ,<2> pentru iesire,:');

readkey;

if readkey='1' then ClearViewPort;

until ReadKey='2';

closeGraph;

End.