![]() |
|
|
Регистрация | << Правила форума >> | 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) больше нет.
|