Skip to content

Instantly share code, notes, and snippets.

@vertrigo
Created November 18, 2012 16:08
Show Gist options
  • Select an option

  • Save vertrigo/4106018 to your computer and use it in GitHub Desktop.

Select an option

Save vertrigo/4106018 to your computer and use it in GitHub Desktop.
лаб9 - вариант 24 (модуль)
unit obj_un;
interface
uses graph;
type gr=object
gd,gm:integer;
procedure graphinit;
procedure graphclose;
end;
type obj=object(gr)
a,b,x,y,s,tx,ty:integer;
procedure setcoord(px,py,sz:integer);
procedure circleshow;
procedure circlehide;
procedure rectshow;
procedure recthide;
procedure treugshow;
procedure treughide;
end;
implementation
procedure gr.graphinit;
begin
gd:=detect;initgraph(gd,gm,'c:\TP\BGI\');
if graphresult <> 0 then begin writeln('Can not open a graphical mode!'); halt(1) end
end;
procedure gr.graphclose;
begin
closegraph
end;
procedure obj.setcoord(px,py,sz:integer);
begin
s:=sz;x:=px;y:=py;
end;
procedure obj.circleshow;
begin
setcolor(getmaxcolor);
circle(x,y,s);
end;
procedure obj.circlehide;
begin
setcolor(getbkcolor);
circle(x,y,s);
end;
procedure obj.rectshow;
begin
setcolor(getmaxcolor);
rectangle(x-s*2,y-s,x+s*2,y+s);
end;
procedure obj.recthide;
begin
setcolor(getbkcolor);
rectangle(x-s*2,y-s,x+s*2,y+s);
end;
procedure obj.treugshow;
begin
setcolor(getmaxcolor);
a:=75; b:=23;
moveto(x,y-a);
tx:=round(a*cos(60));
ty:=round(a*sin(60));
linerel(-tx,-ty*5);
linerel(2*tx,ty+b);
linerel(-tx,ty*5);
end;
procedure obj.treughide;
begin
setcolor(getbkcolor);
a:=75; b:=23;
moveto(x,y-a);
tx:=round(a*cos(60));
ty:=round(a*sin(60));
linerel(-tx,-ty*5);
linerel(2*tx,ty+b);
linerel(-tx,ty*5);
end;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment