Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АСОИ, Delphi, много вариантов 2 сем / 1классы / пирамида из квадратов / Unit2
.pas unit Unit2;
interface
uses Graphics;
var ColrBack:Tcolor;
Type
Tviz=class(Tobject) // Абстрактный родительский класс
ColrLine : Tcolor;
Canvas : Tcanvas;
x, y, r ,a : word;
Procedure Ris;virtual;abstract; // Перекрываемый метод для рисования
Procedure Draw(bl:boolean);
procedure Show; // Показать изображение
procedure Hide; // Стереть изображение
procedure MovTo(dx,dy,dr:integer); // Сдвинуть и изменить размер
end;
TKvad=class(Tviz) // Класс рисования квадрата
x1,y1,x2,y2:word;
Constructor Create(x0,y0,a0:word; colrLine0:Tcolor;canvas0:Tcanvas);
Procedure Ris; override;
end;
implementation
Procedure Tviz.Draw; // В зависимости от значения булевой
begin // переменной этот метод рисует картинки Ris
with Canvas do begin // либо цветом линии, либо цветом фона.
if bl then begin // В последнем случае происходит стирание
pen.color:=colrLine; brush.color:=colrLine
end
else begin
pen.color:=colrBack; brush.color:=colrBack
end;
Ris; // Процедура ris что-то рисует
end; end;
Procedure Tviz.Show;
begin
Draw(true);
end;
Procedure Tviz.Hide;
begin
Draw(false);
end;
procedure Tviz.MovTo;
begin
Hide;
x:=x+dx; y:=y+dy; r:=r+dr; // Переход к новым координатам
Show;
end;
Constructor TKvad.Create; // Начальные данные для рисования круга
begin // они такие-же как и для рисования квадрата,
colrLine:=colrLine0; // поэтому класс Tkvad наследует его
canvas:=canvas0;
x:=x0; y:=y0; a:=a0;
end;
Procedure Tkvad.ris; // Рисование квадрата
Begin
x1:=x; x2:=x+a; y1:=y; y2:=y+a;
Canvas.Rectangle(x1,y1,x2,y2);
end;
end.
interface
uses Graphics;
var ColrBack:Tcolor;
Type
Tviz=class(Tobject) // Абстрактный родительский класс
ColrLine : Tcolor;
Canvas : Tcanvas;
x, y, r ,a : word;
Procedure Ris;virtual;abstract; // Перекрываемый метод для рисования
Procedure Draw(bl:boolean);
procedure Show; // Показать изображение
procedure Hide; // Стереть изображение
procedure MovTo(dx,dy,dr:integer); // Сдвинуть и изменить размер
end;
TKvad=class(Tviz) // Класс рисования квадрата
x1,y1,x2,y2:word;
Constructor Create(x0,y0,a0:word; colrLine0:Tcolor;canvas0:Tcanvas);
Procedure Ris; override;
end;
implementation
Procedure Tviz.Draw; // В зависимости от значения булевой
begin // переменной этот метод рисует картинки Ris
with Canvas do begin // либо цветом линии, либо цветом фона.
if bl then begin // В последнем случае происходит стирание
pen.color:=colrLine; brush.color:=colrLine
end
else begin
pen.color:=colrBack; brush.color:=colrBack
end;
Ris; // Процедура ris что-то рисует
end; end;
Procedure Tviz.Show;
begin
Draw(true);
end;
Procedure Tviz.Hide;
begin
Draw(false);
end;
procedure Tviz.MovTo;
begin
Hide;
x:=x+dx; y:=y+dy; r:=r+dr; // Переход к новым координатам
Show;
end;
Constructor TKvad.Create; // Начальные данные для рисования круга
begin // они такие-же как и для рисования квадрата,
colrLine:=colrLine0; // поэтому класс Tkvad наследует его
canvas:=canvas0;
x:=x0; y:=y0; a:=a0;
end;
Procedure Tkvad.ris; // Рисование квадрата
Begin
x1:=x; x2:=x+a; y1:=y; y2:=y+a;
Canvas.Rectangle(x1,y1,x2,y2);
end;
end.