Вы находитесь на странице: 1из 1

Лабораторная работа. Простой графический редактор.

Требуется создать программу, реализующую функции простейшего графического


редактора. Для удобства выполнения задания разобьем его на базовые составляющие.

1. Создание базового графического интерфейса пользователя.


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

На что обратить внимание:


• Процедура создания формы FormCreate, вызываемая событием (Event) OnCreate –
обрабатывает действия, которые необходимо выполнить при создании формы
приложения (при запуске программы).
• Несмотря на то, что в стандартных диалогах (Dialogs) OpenPictureDialog и
SavePictureDialog используется большой набор фильтров для различных форматов
изображений, нам необходим только *.bmp. Остальные фильтры нужно убрать.
• При сохранении картинки из, например, Image1.Picture расширение автоматически
НЕ ДОПИСЫВАЕТСЯ к имени файла. Эту функцию нужно реализовать вручную.
• Заливку Image цветом можно реализовать через Canvas.FloodFill. FloodFill –
процедура входными данными в которой являются координаты X, Y, цвет заливки и
стиль заливки. В качестве стиля можно использовать fsSurface.
• Для выбора цвета и инструментов рисования можно использовать различные
элементы управления. Например, ComboBox (вкладка Standart), СоlorBox (вкладка
Additional), ColorGrid (вкладка Samples) и т.д.
• За текущий цвет рисования отвечает параметр Canvas.Pen.Color.

2. Написание простых функций редактора.


На этом этапе нужно «научить» программу собственно рисованию. Реализовать режимы
работы «карандаш», «линия» и «ломаная линия».

Режимы работы:
• Режим «карандаш» должен работать следующим образом: при нажатой и
удерживаемой левой кнопки мыши за курсором остается цветной след при
перемещении его по рабочей области.
• Режим «линия» – одинарным щелчком левой кнопки мыши на рабочей области
задается начальная точка линии. Второй щелчок задает конечную точку и выполняет
процедуру отрисовки линии.
• Режим «ломаная линия» - работа аналогична «линии» за исключение того, что при
третьем и последующих щелчках мыши начальными координатами являются
координаты предыдущего щелчка.

На что обратить внимание:


• Для реализации этих режимов используются следующие процедуры Canvas’а:
o LineTo(X,Y) – провести линию из текущих координат в координаты X, Y;
o MoveTo(X,Y) – назначить текущими координатами координаты X, Y;
• Для реализации режима «карандаш» требуется отслеживать нажата кнопка мыши, или
нет. Предполагается использовать для этой цели булеву переменную.
• Для получения координат курсора на рабочей области нужно использовать события
Image: OnMouseDown (нажатие левой кнопки мыши), OnMouseUp (отжатие левой
кнопки мыши) и OnMouseMove (движение мыши по рабочей области). Все эти события
генерируют процедуры, в которые автоматически передаются координаты курсора в
виде формальных параметров X и Y.