§ 20. Создание приложений
20.4. Создание приложения «Графический редактор»
Программа должна давать возможность открыть и сохранить файл, выбрать цвет линии и цвет фона, установить толщину линии. Рисование производится выбранным цветом линии при нажатой левой клавиши мыши. При нажатии правой клавиши мыши происходит перекраска цветом фона ограниченной области. Сначала спроектируем форму, разместив на ней следующие компоненты (пример 20.13):
У свойства GridOrdening для компонента ColorGrid1 установить значение go8x2, которое позволит разместить компонент горизонтально. На этапе конструирования установить значение свойства Color у компонентов Panel1 и Panel2, clBlack и clWhite соответственно. У свойств Value и MinValue для компонента SpinEdit1 установить значение 1. Структура меню показана в примере 20.14. Обработчики событий приведены в примере 20.15. Для того, чтобы программа загружалась с видимой областью для рисования, нужно при создании формы выполнить какое-либо обращение к Image1, например, закрасить белым цветом пиксел с координатами (0; 0). Для проверки нажатой клавиши мыши опишем обработчик события OnMouseDown для компонента Image1. Параметр Button у этого обработчика может принимать значения mbLeft или mbRight в зависимости от нажатой левой или правой клавиши мыши. Для отслеживания траектории движения мыши по компоненту Image1 создаем обработчик события OnMouseMove. Параметр Shift у обработчика позволяет определить, какая из клавиш мыши была нажата, а параметры x, y возвращают координаты точки, в которой произошло нажатие кнопки. Для перемещения мыши нужно использовать методы Canvas: LineTo(x, y) — перемещение со следом и MoveTo(x, y) — перемещение без следа. Обработчик события OnChange для компонента ColorGrid1 позволит определить выбранный цвет. Свойства ForegroundColor и BackgroundColor у этого компонента, отвечающие за основной и фоновый цвета, изменяются при нажатии левой и правой кнопок соответственно. Параллельно изменяется цвет панелей. Толщина линии определяется значением свойства Value для компонента SpinEdit1. Обработчик события — OnChange. Обработчики событий для компонентов OpenPictureDialog1, SavePictureDialog1, вызываются из соответствующих пунктов меню и аналогичны обработчикам, описанным для программы Блокнот. Для сохранения и загрузки файлов нужно описать глобальную строковую переменную FileName. Приложение может сохранять и загружать файлы формата bmp. С помощью компонента ColorDialog1 можно выбрать цвет линии или заливки, отсутствующие на панели ColorGrid1. Пункты меню Цвет, позволяют выбрать цвет линии или заливки соответственно. При выборе цвета на панели ColorGrid1 доступны только 16 базовых цветов, при выборе цета из меню — стандартная RGB палитра. Создание рисунка и загрузка файла в приложение приведены в примере 20.16. |
Пример 20.13. Форма на этапе конструирования: Пример 20.14. Структура меню: Пример 20.15. Обработчики событий:
Пример 20.16. Работающее приложение: |