![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Народ, я заочник, поэтому мягко сказать нуб пока, помогите если не трудно с контрольным заданием!!! Очень прошу
Модуль содержит описание типа-объекта TRect – прямоугольник. 1. Используя этот модуль, написать программу, изображающую на экране мигающий прямоугольник. Изменить модуль, объявив часть полей личными. 2. Написать свой модуль, в котором описать два новых объекта, наследующих от TRect : прямоугольник, способный случайным образом изменять размеры, цвет и стиль заполнения, и эллипс, обладаюший таким же поведением. Составить программу, изображающую на одной половине экрана мигающий прямоугольник, а на другой - мигающий эллипс. 3. Создать новый объект "Среда", который мог бы занимать весь экран или его часть и содержать внутри себя четыре объекта, вид объектов определяется случайно при инициализации среды из объектов, созданных в результате выполнения пункта 2. Объекты размещаются каждый в своем квадранте и при выполнении программы изменяют свои параметры. Буду вам премного благодарен! |
|
#2
|
|||
|
|||
|
Ну и где этот модуль???
Кстати, TRect уже есть в Delphi, только это, если не ошибаюсь, запись, а не класс. |
|
#3
|
|||
|
|||
|
Код:
unit Rectangl;
interface
uses Graph, Crt;
const EnvColor = white ; { цвет фона }
type
TRect = object { тип объекта "прямоугольник" }
X, Y : integer; { координаты центра }
SizeX, SizeY : integer; { размеры }
Color : byte; { цвет }
FillStyle : byte; { способ закраски }
Filled : Boolean; { флаг закраски }
Visible : Boolean; { флаг видимости }
procedure Init(InitX,InitY,InitSizeX,InitSizeY :
10
integer; InitColor,InitFillStyle : byte);
{Начальная установка параметров прямоугольника }
procedure Show;
{ Высвечивает прямоугольник на экране }
procedure Hide;
{ гасит изображение прямоугольника }
function IsVisible : boolean;
{ Возвращает значение флага видимости }
function IsFilled : boolean;
{ Возвращает значение флага закраски }
function GetFigureColor : byte;
{ Возвращает значение цвета прямоугольника }
function GetX : integer;
{ Возвращает X координату центра }
function GetY : integer;
{ Возвращает Y координату центра }
function GetWidth : integer;
{ Возвращает размер прямоугольника по оси X }
function GetHeight : integer;
{ Возвращает размер прямоугольника по оси Y }
procedure SetVisibilityFlag (NewVisible:boolean);
{ Устанавливает флаг видимости объекта }
procedure SetFillFlag (NewFilled : boolean);
{ Устанавливает флаг закраски объекта }
procedure SetFillStyleM(InitFillStyle : byte) ;
{ Устанавливает способ закраски объекта }
procedure SetFigureColor(TheColor : byte);
{ Устанавливает цвет объекта }
end;
implementation
{************ методы TRect **************}
procedure TRect.Init;
begin
X := InitX; Y := InitY;
SizeX := InitSizeX; SizeY := InitSizeY;
SetFigureColor(InitColor);
SetVisibilityFlag(true);
SetFillStyleM(InitFillStyle);
SetFillFlag(true);
end;
function TRect.IsVisible : boolean;
begin
IsVisible := Visible;
11
end;
function TRect.IsFilled : boolean;
begin
IsFilled := Filled;
end;
function TRect.GetFigureColor : byte;
begin
GetFigureColor := Color;
end;
function TRect.GetX : integer;
begin
GetX := X;
end;
function TRect.GetY : integer;
begin
GetY := Y;
end;
function TRect.GetWidth : integer;
begin
GetWidth := SizeX;
end;
function TRect.GetHeight : integer;
begin
GetHeight := SizeY;
end;
procedure TRect.Hide; { гасит изображение объекта }
begin
SetColor(EnvColor);
SetFillStyle(EmptyFill, Color);
if Filled
then Bar( X - SizeX div 2, Y - SizeY div 2,
X + SizeX div 2, Y + SizeY div 2 )
else Rectangle( X-SizeX div 2, Y-SizeY div 2,
X+SizeX div 2, Y+SizeY div 2 )
end;
procedure TRect.SetVisibilityFlag ;
begin
Visible := NewVisible;
end;
12
procedure TRect.SetFillFlag ;
begin
Filled := NewFilled;
end;
procedure TRect.SetFillStyleM(InitFillStyle: byte) ;
begin
FillStyle := InitFillStyle;
end;
procedure TRect.SetFigureColor(TheColor : byte);
begin
Color := TheColor;
end;
procedure TRect.Show; {высвечивает объект на экране}
begin
if Visible then begin
SetColor(Color);
SetFillStyle(FillStyle, Color);
if Filled
then Bar( X - SizeX div 2, Y - SizeY div 2,
X + SizeX div 2, Y + SizeY div 2 )
else Rectangle( X-SizeX div 2, Y-SizeY div 2,
X+SizeX div 2, Y+SizeY div 2 )
end;
end;
end. |
|
#4
|
|||
|
|||
|
А что это за старьё от TurboPascal???
Это все надо переписывать... |
|
#5
|
|||
|
|||
|
Понимаю, но уж что дали, с преподом бесполезно спорить
![]() |
|
#6
|
|||
|
|||
|
Дык не будет работать на Дельфи. Там таких модулей-то (Graph, Crt) больше нет.
|