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.