Автор работы: Пользователь скрыл имя, 23 Февраля 2011 в 07:41, лабораторная работа
. Цель работы
Ознакомление со средой визуального программирования Delphi и разра-
ботка в ней простейших приложений.
кой мыши и удерживая ее, можно было нарисовать эллипс любого размера и
цвета.
Вариант 4
Реализовать
рисование так, чтобы по
кнопкой и удерживая ее при перемещении мыши по горизонтали и вертика-
ли) рисовались отрезки произвольной длины и цвета, а используя ту же
технологию и удерживая клавишу CTRL, можно было рисовать прямоуголь-
ники различного размера и цвета.
Вариант 5
Реализовать
рисование так, чтобы по
кнопкой и удерживая ее при перемещении мыши по горизонтали и вертика-
ли) рисовалась окружность произвольного радиуса, а щелкая правой кноп-
кой мыши и удерживая ее можно было нарисовать квадрат любого размера
и цвета.
5.1.
Некоторые подсказки для
Один из вариантов экрана, полученный после работы программы, пред-
ставлен
на рис. 5.2.
Рис. 5.2. Результат работы программы
1.
Запишите следующий код для
события OnMouseDown:
if Button = mbLeft then
begin
Center.X := X;
Center.Y := Y;
if ssShift in Shift then
Circle := False
else
Circle := True;
end;
Поле формы Circle типа Boolean определяет вид фигуры. Значения коор-
динат центра фигуры записываются в поля формы Center типа TPoint. Это
будет выглядеть так:
var
Form1: TForm1;
Center, Radius: TPoint;
Circle: Boolean;
2. Запишите
следующий код для события
OnMouseUp :
Radius.X := abs(Center.X-X);
Radius.Y := abs (center.Y-Y);
if Circle then
Canvas.Ellipse(Center.X-
ter.X+Radius.X, Center.Y+Radius.Y)
else
Canvas.Rectangle(Center.X-
ter.X+Radius.X,
Center.Y+Radius.Y);
3.
Запишите следующий код для
события OnMouseMove:
Caption: =Format ('Координаты: x=%d, y=%d ' , [X, Y]);
Запустите приложение. Если все сделано правильно, то вы будете на-
блюдать
изменение координат в
(рис. 5.3); сможете рисовать окружности и эллипсы нужного размера (щел-
кая кнопкой и удерживая ее при перемещении мыши по горизонтали и вер-
тикали);
сможете рисовать
же
технологию и удерживая
Рис. 5.3. Вывод координат в заголовке
Задание № 2
Начиная с оператора if, код для события OnMouseUp перенести в код
для события OnPaint.
1. В код для события OnMouseUp вставить в конце вызов метода Invali-
date
( который вызывает косвенно
ем OnPaint). Это будет выглядеть так:
begin
Radius.X:=abs(Center.X -X);
Radius.Y:=abs(Center.Y-Y);
Invalidate;
end;
2. Запустить приложение. При правильном выполнении всех инструк-
ций,
в форме будет рисоваться
Рис. 5.4 Нарисована только одна фигура
3. Выполните первое задание для компонента PaintBox.
На странице System Палитры Компонентов есть объект TPaintBox, ко-
торый можно использовать для построения приложений типа графического
редактора или, например, в качестве места построения графиков. Никаких
ключевых свойств, кроме Canvas, TPaintBox не имеет, собственно, этот объ-
ект является просто канвой для рисования. Важно, что координаты указате-
ля мыши, передаваемые в обработчики соответствующих событий
(OnMouseMove и др.), являются относительными, т.е. это смещение мыши
относительно левого верхнего угла объекта TPaintBox, а не относительно
левого верхнего угла формы.
4. Изучите возможности компонента Shape.
На странице Additionally Палитры Компонентов есть объект TShape.
TShape - простейшие графические
и т.п. Вид объекта указывается в свойстве Shape. Свойство Pen определяет
цвет и вид границы объекта. Brush задает цвет и вид заполнения объекта.
Эти свойства можно менять как во время дизайна, так и во время выполне-
ния программы.
Задание № 3
Постройте
график функции, значения
раторной
работе № 1.
6. Результаты работы
В результате выполнения лабораторной работы студент должен проде-
монстрировать преподавателю
файлы форм и исходный код
модулей.
СПИСОК ЛИТЕРАТУРЫ
1. Фаронов В.В. Delphi 3. Учебный курс. М.: "Нолидж", 1998. 400 с.
2. Культин Н. Программирование на Object Pascal Delphi 5. СПб.: BHV -
Санкт-Петербург, 2000. 464 с.
3. Эндрю Возневич. Delphi. Освой самостоятельно: Пер. с англ. М.: Вос-
точная Книжная Компания, 1996. 736 с.
4. Турбо Паскаль 7.0. Киев: Издательская группа BHV, 1998. 448 с.
5. Шилдт Г. Самоучитель С++, 3-е издание: Пер. с англ. СПб.: BHV -
Санкт-Петербург, 1998. 688 с.
6. Сергиевский М.В., Шалашов А.В. Турбо Паскаль 7.0: Язык, среда про-
граммирования. М.: Машиностроение, 1994. 254 с.
7. Канту М. Delphi 2 для Windows 95/NТ. Полный курс. В 2 т. Т. 1: Пер. с
англ. М.: Малип, 1997. 400 с.
ОГЛАВЛЕНИЕ
ЛАБОРАТОРНАЯ
РАБОТА №1 ..............................
РАЗРАБОТКА
ПРОСТОГО ПРИЛОЖЕНИЯ DELPHI ..............................
1. Цель работы ..............................
2. Домашнее задание .............
3. Основные понятия и приемы.....
4. Порядок выполнения работы ..............................
5. Варианты индивидуальных
6. Результаты работы.............
ЛАБОРАТОРНАЯ
РАБОТА № 2 ..............................
ОБРАБОТКА
ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ В
ОТ ПОЛЬЗОВАТЕЛЯ
..............................
1. Цель работы ..............................
2. Домашнее задание .............
3. Основные понятия и приемы.....
4. Порядок выполнения работы ..............................
5. Варианты индивидуальных заданий ..............................
6. Результаты работы.............
ЛАБОРАТОРНАЯ
РАБОТА № 3 ..............................
СОЗДАНИЕ
И ОБРАБОТКА МЕНЮ..............
1. Цель работы ..............................
2. Домашнее задание ..............................
3. Основные понятия и приемы.....
4. Порядок выполнения работы ..............................
5. Варианты индивидуальных
6. Результаты работы.............
ЛАБОРАТОРНАЯ
РАБОТА №4 ..............................
КЛАССЫ
И МОДУЛИ ..............................
1. Цель работы ..............................
2. Домашнее задание .............
3. Основные понятия и приемы.....
4. Порядок выполнения работы ..............................
5. Варианты индивидуальных
6. Результаты работы........................
ЛАБОРАТОРНАЯ
РАБОТА № 5 ..............................
ПОЛУЧЕНИЕ
ВВОДА ОТ МЫШИ. РИСОВАНИЕ В
ФОРМЕ ........................
1.
Цель работы ..............................