Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Пример создания приложения, использующего графические возможности Delphi.





Задание.Создать приложение, которое рисует и перемещает эллипс. Эллипс перемещается по вертикальной линии. При достижении границ формы он останавливается.

Проект должен содержать 2 модуля. В первом модуле (главном) будет описываться класс TForm1, отвечающий за пользовательскую форму. Кроме того, этот класс будет отвечать за перемещение эллипса. Во втором модуле будет описываться класс (TEll), хранящий в себе информацию о геометрической фигуре - эллипс.

Для этого на форме размещаются следующие компоненты:

1. Страница -компонент PaintBox .

2. Страница -компонентTimer .

Таймер используется для отсчета интервалов в миллисекундах реального времени. Свойство Enabled включает или отключает таймер. Класс, отвечающий за эту форму, будет описан в первом модуле. Внешний вид формы приведен на рис. 1.

Timer
PaintBox

Рис. 1.

Теперь по команде File – New – Unit необходимо создать второй модуль, в котором будет описываться класс TEll. Класс TEll должен содержать в себе в разделе private поля, хранящие характеристики эллипса, в разделе public – методы, а также свойства, обеспечивающие доступ к полям. Описание класса приведено ниже.

type

TEll = class

private

X, Y, X1, Y1 : integer;

Color : TColor;

Canvas : TCanvas;

public

constructor Create(pCanvas: TCanvas; pX, pY, pX1, pY1: integer; pColor: TColor);

destructor Destroy;

procedure Draw(Visible : boolean);

procedure Move(dX, dY: integer);

property YY:integer read Y;

end;

Конструктор Create отвечает за создание объекта класса Tell и инициализацию его полей. Хорошим тоном считается сначала вызывать конструктор непосредственного родителя.

inherited Create;

X:=pX; Y:=pY;

X1:=pX1; Y1:=pY1;

Color:=pColor;

Canvas:=pCanvas;

Деструктор Destroy уничтожает объект.

inherited Destroy;

Метод Draw рисует или скрывает эллипс в зависимости от значения параметра Visible. Скрыть эллипс можно, нарисовав его цветом фона. В качестве цвета фона был выбран белый цвет.



if Visible then Canvas.Pen.Color:=Color

else Canvas.Pen.Color:=clwhite;

Canvas.Brush.Color:=clwhite;

Canvas.Ellipse(X, Y, X1, Y1);

Метод Move отвечает за один шаг перемещения эллипса. Алгоритм перемещения заключается в следующем. Сначала эллипс скрывается, затем меняются его координаты и далее он рисуется снова, но уже на новом месте.

Draw(False);

X:=X+dX; Y:=Y+dY;

X1:=X1+dX; Y1:=Y1+dY;

Draw(True);

Свойство YY нам необходимо, чтобы получить доступ к одному из закрытых полей Y для чтения и использования значения этого поля при проверке достижения края кромки в первом модуле.

Класс TForm1 имеет следующее описание:

TForm1 = class(TForm)

PaintBox1: TPaintBox;

Timer1: TTimer;

procedure FormPaint(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

El:TEll;

{ Public declarations }

end;

Метод FormPaint отвечает за рисование фона и начальное рисование эллипса.

with PaintBox1.Canvas do

begin

Pen.Color:=clwhite;

Pen.Style:=psDot;

Brush.Color:=clwhite;

Rectangle(PaintBox1.ClientRect);

end;

El.Draw(True);

В методе FormCreate происходит создание объекта El.

El:=TEll.Create(PaintBox1.Canvas, 10, 10, 20, 40, clRed);

А в методе FormDestroy происходит его уничтожение.

El.Destroy;

Метод Timer1Timer вызывается через интервал, определенный в свойстве interval, и имеет следующий текст.

if El.YY<=Clientheight-60 then El.Move(0,10)

else timer1.Enabled:=false ;

В нем вызывается метод Move объекта Ell. При достижении границ холста таймер выключается и тем самым движение фигуры останавливается.

Результат работы приложения показан на рис. 2.

Рис. 2.

Содержание отчета.

Содержание отчета должно включать следующие пункты: цель работы, номер варианта и задание, полный текст модуля, результат работы приложения (внешний вид окон).

Контрольные вопросы.

1.Графические возможности Delphi.

2.Основные принципы объектно-ориентированного программирования.

3.Структура класса в OP. Свойства.

4.Директивы доступа к элементам класса.

5.Компонент Timer: назначение, принцип работы.

 

Лабораторное задание.

1.Создать приложение для перемещения по периметру области рисования прямоугольника. При нажатии кнопки Enter фигура должна остановиться, при повторном нажатии – продолжить свое движение.

2.Создать приложение для перемещения окружности. Окружность должна перемещаться вверх, вниз, вправо и влево при нажатии соответственно кнопок перемещения курсора. При нажатии кнопки Enter фигура должна менять цвет, при повторном нажатии – возвращать исходный.

3.Создать приложение для перемещения вдоль горизонтальной прямой эллипсов. Каждый новый эллипс появляется при нажатии на кнопку Enter.

4.Создать приложение для отображения на экране окружностей. Каждая новая окружность появляется при нажатии на кнопку Enter. При нажатии кнопки -> радиус окружностей увеличивается на 10 пикселей.

5.Создать приложение для перемещения квадрата по диагонали области рисования. При достижении противоположного угла фигура должна поменять направление своего движения. При нажатии кнопки Enter фигура меняет цвет, при повторном нажатии – восстанавливает исходный. Движение фигуры при этом не прекращается.

6.Создать приложение для перемещения окружности по вертикальной линии. Окружность должна перемещаться сверху вниз. После того, как окружность выйдет за пределы холста внизу, она снова должна появиться сверху и продолжить своё движение. При нажатии кнопки Enter фигура должна менять цвет, при повторном нажатии – возвращать исходный.

7.Создать приложение для отображения на экране прямоугольников. В начальный момент времени прямоугольник должен быть один. При нажатии кнопки Enter должен появиться следующий прямоугольник на расстоянии n от предыдущего и т.д. При нажатии кнопок -> и <- все прямоугольники должны перемещаться вправо и влево соответственно.

8.Создать приложение для перемещения горизонтальной линии по экрану. Перемещение происходит при нажатии клавиш <- и ->. При нажатии кнопки Enter линия поворачивается против часовой стрелки относительно одной из своих крайних точек.

9.Создать приложение для перемещения по экрану треугольника. Треугольник перемещается влево и вправо при нажатии кнопок <- и ->. При нажатии кнопки Enter треугольник должен переворачиваться.

10. Создать приложение для перемещения по экрану закрашенного эллипса. Эллипс перемещается самостоятельно от одного края холста к другому. При нажатии кнопки Enter он должен менять свой цвет, при повторном нажатии – восстанавливать.

 

Литература.

1. Вернардский А.В. Borland Delphi. - М.: 2000.

2. Архангельский А.Я. Разработка прикладных программ для Windows. - М.: Изд. БИНОМ, 2000.

3. Кэнту М. Delphi 5 для профессионалов. - СПб.: Питер, 2001.

4. Фаронов В.В. Delphi 5. Учебный курс. - М.: Нолидж, 2000.

5. Архангельский А.Я. 100 компонентов библиотеки Delphi 5. - М.: Изд. БИНОМ, 2000.

6. Архангельский А.Я. Интегрированная среда разработки Delphi 5. - М.: Изд. БИНОМ, 2000.

7. Архангельский А.Я. Object Pascal в Delphi 5. - М.: Изд. БИНОМ, 2000.

8. Гофман В.Э., Хомоненко А.Д. Delphi 6. - СПб.: БХВ-Петербург, 2002.

9. Дарахвелидзе П.Г., Марков Е.П., Котенок О.А. Программирование в Delphi 5. - СПб.: БХВ-Петербург, 2001.

 


Камилова Айшат Магомедрасуловна,

 

 

Методические указания для выполнения лабораторных работ по дисциплине «Среды визуального программирования» (для специальностей 230101 – ВМКСиС и 230105 – ПОВТиАС). – Махачкала: ДГТУ, 2005 г. – 32 с.

 

 

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.