Skip to content

Instantly share code, notes, and snippets.

@vertrigo
Created November 21, 2012 15:39
Show Gist options
  • Select an option

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

Select an option

Save vertrigo/4125513 to your computer and use it in GitHub Desktop.
Program lab9;
uses crt,graph,obj_un;
var r:rect;i,st:integer;
procedure moveright(dist:integer; time:integer);
var i:integer;
begin
for i:=1 to dist do begin
r.move(100+i*st,240,30);
r.show; delay(time); r.hide;
end;
end;
procedure moveleft(dist:integer; time:integer);
var i:integer;
begin
for i:=dist downto 1 do begin
r.move(100+i*st,240,30);
r.show; delay(time); r.hide;
end;
end;
Begin
clrscr;
writeln('Задайте шаг движения объекта (5-15):');
readln(st);
r.graphinit;
for i:=1 to 5 do begin
moveright(30,1000);
moveleft(30,1000);
end;
readln; r.graphclose;
end.
unit obj_un;
interface
uses graph;
type gr=object
gd,gm:integer;
procedure graphinit;
procedure graphclose;
end;
type rect=object(gr)
x,y,s:integer;
procedure move(px,py,sz:integer);
procedure show;
procedure hide;
end;
implementation
procedure gr.graphinit;
begin
gd:=detect;initgraph(gd,gm,'c:\TP\BGI\');
if graphresult <> 0 then halt(1);
end;
procedure gr.graphclose;
begin
closegraph
end;
procedure rect.move(px,py,sz:integer);
begin
s:=sz;
x:=px;
y:=py;
end;
procedure rect.show;
begin
setcolor(getmaxcolor);
rectangle(x-s*2,y-s,x+s*2,y+s);
end;
procedure rect.hide;
begin
setcolor(getbkcolor);
rectangle(x-s*2,y-s,x+s*2,y+s);
end;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment