{ Questa unit e' stata realizzata da un mio amico, Paolo. Per qualsiasi motivo, mailatemi a xenion@libero.it, e gli faro'sapere ;) Questa unit e' un gestore di finestre in modalita' grafica !!! Ha alcuni problemucci con finestre piu' grandi di 1/3 di schermo. Ma per il piu' delle volte non sono neccessarie finestre cosi' grandi. Per utilizzare questa unit, utilizzare come esempio tris.pas ... } unit wingraf1; interface uses graph; type coop=record xs,xd,ya,yb:word;end; win=object constructor init; procedure apri(xsa,yaa,xda,yba,t,s:word);virtual; procedure chiudi; private pa:^coop; dimvideo,x,y:^word; coordinate:^viewporttype; video:pointer; destructor done; procedure controlla; procedure memorizza; procedure ripristina; end; {****************************************************} implementation constructor win.init; begin new(x);new(y);new(pa);new(dimvideo);new(coordinate); end; procedure win.controlla; begin end; procedure win.apri(xsa,yaa,xda,yba,t,s:word); begin controlla; with pa^ do begin xs:=xsa;xd:=xda;ya:=yaa;yb:=yba;end; getviewsettings(coordinate^); setviewport(0,0,getmaxx,getmaxy,clipon); memorizza; with pa^ do begin setviewport(xs,ya,xd,yb,clipon); setfillstyle(s,t);bar(0,0,xd-xs,yb-ya);end; end; destructor win.done; begin dispose(x);dispose (coordinate);dispose(y);dispose(dimvideo); end; procedure win.chiudi; begin setviewport(0,0,getmaxx,getmaxy,clipon); ripristina; setviewport(coordinate^.x1,coordinate^.y1,coordinate^.x2,coordinate^.y2,coordinate^.clip); done; end; procedure win.memorizza; begin with pa^ do begin dimvideo^:=imagesize(xs,ya,xd,yb); getmem(video,dimvideo^); getimage(xs,ya,xd,yb,video^); end; end; procedure win.ripristina; begin with pa^ do begin putimage(xs,ya,video^,0); freemem(video,dimvideo^); end;end; end.