Разработка программы, аналога Paint системы Windows, с функциями открытия изображения в графическом редакторе и его сохранения, написания текста в любом указанном мышкой месте, изменения шрифта, размера и цвета текста на языке программирования Delphi.

РубрикаПрограммирование, компьютеры и кибернетика
Видкурсовая работа
Языкрусский
Дата добавления06.04.2014

по дисциплине Информатика

Delphi: разработать программу простейшего графического редактора

Разработать программу простейшего графического редактора (аналог программы Paint системы Windows). Он должен писать текст в канве компонента TraintBox в указанном мышкой месте. Предусмотреть возможность изменения цвета, размера, типа шрифта, сохранения рисунка в графическом файле.

1. Структура программы

1.2 Основные составляющие

2. Структурные схемы алгоритма решения задачи

3. Текст программы

4. Работоспособность программы

Список использованной литературы

Программирование — это процесс создания компьютерных программ. В наши дни такая деятельность приветствуется, практически, во всех сферах. Элементарная бегущая строка, которую показывают по телевизору — и та создаётся с помощью программирования, не говоря уже о программах для работы в самых различных сферах деятельности. Также с помощью программирования можно создать графический редактор. Именно этому и посвящена данная курсовая работа.

Для выполнения задач курсовой работы я решил использовать среду программирования Delphi7. Мой выбор обусловлен наиболее простым и понятным в использовании интерфейсом программы.

Цели и задачи работы.

1) Освоение программирования;

2) Понимание структуры задачи, её построения;

3) Изучение какого-либо языка программирования. В данном случае — это язык Delphi;

4) Выявление ошибок в программировании и их устранение.

программа графический редактор delphi

1. Структура программы

Программа представляет собой аналог графического редактора Paint в системе Windows с урезанными функциями, написана на языке программирования Delphi в программе Borland Delphi7. Программа предусматривает возможности:

1) открытие изображения в графическом редакторе;

2) сохранение изображения;

3) написание текста в любом указанном мышкой месте;

4) изменение шрифта, размера и цвета текста;

1.2 Основные составляющие

PaintBox — область, на которой производятся все основные действия программы.

Image — область, в которую помещается открываемое изображение.

Panel 1 — панель инструментов.

MainMenu — главное меню.

SpeedButton — быстрая кнопка с изображением инструмента набора текста. С помощью нее можно ввести текст в любой выбранной области.

SpeedButton — быстрая кнопка с изображением карандаша. С ее помощью можно выполнить рисунок.

OpenPicture — диалог открытия изображения.

SavePicture — диалог сохранения изображения.

FontDialog — диалог выбора размера, вида и цвета текста

2. Структурные схемы алгоритма решения задачи

3. Текст программы

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ColorGrd, StdCtrls, Spin, ExtCtrls, Menus, Buttons, ExtDlgs;

Приложение выполняет следующие функции:

Установка основного и дополнительного цветов. Щелчок на панели цветов левой кнопкой мыши устанавливает основной цвет, а щелчок правой кнопкой – дополнительный.

Кисть – кнопка SBBrush . Закрашивает замкнутую область, ограниченныю цветом того пикселя, который указан щелчком мыши. При щелчке левой кнопкой закрашивание производится основным цветом, при щелчке правой кнопкой – вспомогательным.

Индикация цвета -кнопка SBColor . В этом режиме можно указать курсором мыши любой пиксель на изображении и, щелкнув левой кнопкой, установить цвет этого пикселя как основной, а щелкнув правой кнопкой мыши, установитьего как вспомогательный цвет.

Отмена операций, выполненных последним использованным инструментом – команда Правка | Отменить.

Открытие графического файла – команда Файл | Открыть ( MOpenClick ) .

Вставка графического изображения типа битовой матрицы

8. OnMouseDown – это основной код, осуществляющий как установку основного и вспомогательных цветов, так и функцию инструмента графического редактора – кисти.

Если кнопка мыши нажата на палитре цветов, Image 4, или если кнопка SBColor – кнопка указателя цвета утоплена , то приложение находится в режиме установки цветов. При нажатой левой кнопки мыши цвет пикселя под курсором мыши передается в окно основного цвета, а при нажатой правой кнопки – в окно вспомогательного цвета.

Если кнопка мыши нажата на холсте, Image 3, или если кнопка SBColor – кнопка указателя цвета утоплена , то приложение находится в режиме закраски указанной области рисунка. В этом случае в зависимости от нажатой кнопки мыши выбирается основной или вспомогательный цвет и функцией FloodFill производится закраска области, координаты внутренней точки которой указаны курсором мыши, а цвет – цветом пикселя, на который указывает мышь.

Дополнительные функции графического редактора:

Выделение фрагмента – кнопка SBRect . Фрагмент выделяется точечной рамкой. Выделенный фрагмент можно в дальнейшем перетащить мышью на другое место. Если в процессе перетаскивания нажата клавиша Ctrl , то производится копирование фрагмента, в противном случае вырезание, при котором область первоначального размещения фрагмента закрашивается вспомогательным цветом. Выделенный фрагмент может быть также скопирован или вырезан в буфер обмена Clipboard соответствующими командами меню.

Рисование прямоугольника – кнопка SBRectang . Рисуется прямоугольная рамка основным цветом.

Начало режимов рисования заполненного и незаполненного прямоугольников про-исходит по событию onMouseDown и их продолжение по событиям onMouseMove и не отличаются от рассмотренного режима выделения фрагмента.;При завершении формирования пользователем прямоугольной рамки, т.е. при собы-тии MouseUp, надо нарисовать прямоугольник. ;Рисование заполненного прямоугольника осуществляется операторами: Рисование незакрашенного прямоугольника осуществляется операторами: Рисование заполненного прямоугольника – кнопка SBFillRec . Рисуется прямоугольная рамка основным цветом и прямоугольник внутри закрашивается вспомогательным цветом.

Возможные значения свойства Mode пера Pen

Начало рисования прямой линии осуществляется по событию onMouseDown:
Рисование прямой линии – кнопка SBLine.Рисуется прямая линия основным цветом.

Продолжение рисования прямой линии осуществляется по событию onMouseMove: Заключительные операции при событии MouseUp аналогичны рассмотренным выше, но дополняются переводом пера в режим pmCopy, при котором рисуется окончатель-ная линия: Карандаш – кнопка SBPen. Можно рисовать произвольную кривую основным цветом. Glyph:=..ImagesButonspencil.bmp

При реализации этого инструмента в виде: линия распадется на отдельные точки, так как курсор мыши перемещаетяс быстро и события onMouseMove происходят вовсе не при перемещении на соседний пик-сель. Линию,оставляемую курсором тоже нужно рисовать методом LineTo, помес-тив в обработчик события onMouseMove оператор: Стирание изображения (ластик) – кнопка SBErase. Перемещение ластика закрашивает область под ним во вспомогательный цвет.

Ластик реализуется методом FillRect, очищающим изображение под его рамкой.

Сохранение файла осуществляется с использованием компонента SavePictureDialog оператором: Сохранение изображения в графическом файле – команда Файл/Сохранить как…

Копированию или вырезанию подлежит ранее выделенный пользователем объект, местоположение и размеры которого определяются переменной R. Поэтому сначала создается временный объект типа TBitMap, в который переносится копируемый фрагмент. Затем объект копируется в ClipBoard. Копирование или вырезание выделенного фрагмента изображения в буфер обмена Clipboard – команды Правка|Копировать или Правка|Вырезать

Чтение из ClipBoard осуществляется методом LoadFromClipBoardFormat. Предусмотрен перехват исключения EInvalidGraphic, если в ClipBoard содержится не битовая матрица: Вставка графического изображения типа битовой матрицы из буфера обмена Clipboard – команды Правка|Вставить.

Попробуйте усовершенствовать редактор, добавив в него, например, выбор ширины линий, рисование эллипсов и т.д.

Далее приведен полный текст дополнений к редактору представленному в части 1:

В класс TForm1 добавить:

Copyright © 2004-2019 "Delphi Sources". Delphi World FAQ

Создание полотна и карандаша

    Создадим новый проект, а внутри проекта форму Form1.

На форме разместим элемент Image (панель Additional). Это будет холст для рисования.

Создадим в модуле глобальную переменную d логического типа. Она будет показывать опущен ли в данный момент карандаш на полотно или нет.

Создадим обработчик события «показ формы», который при выводе формы на экран будет очищать холст. Для этого переведем мышкой фокус на форму и перейдем на панель «Object Inspector». Событие относится к объекту Form1. Оно называется onShow. За этим событием закрепим обработчик – процедуру FormShow. Текст обработчика будет следующим:

Создадим еще три обработчика событий к объекту Image1.:

  • Событие onMouseDown (мышь опущена) — глобальной переменной d присваивается значение Истина, а карандаш останавливается в той координате, где находится мышь;
  • Событие onMouseMove (мышь перемещается) – карандаш оставляет след на холсте при условии, что мышь опущена (то есть переменная d истина);
  • Событие onMouseUp (мышь поднята) – глобальной переменной d присваивается значение Ложь.

Попробуй обратиться за помощью к преподавателям

Задай вопрос специалистам и получи
ответ уже через 15 минут!

После компиляции этого кода должна открываться форма с полотном, на котором мышка при удержании левой кнопки оставляет черный след.

Создание кнопки «очистить», выбор толщины пера и цвета

Добавим на форму элемент Button- кнопка с названием Button1. Создадим на кнопке надпись «Очистить». К событию этой кнопки onClick (нажатие) добавим обработчик, который будет очищать полотно.

Добавим на форму элемент Edit (текстовое поле ) и зададим его свойству Name значение EditSize. В его свойстве Text пропишем значение по умолчанию 1. Добавим к обработчику события onMouseMove строчку

Смысл этого кода в следующем: присвоить свойству «толщина карандаша» то значение, которое находится в текстовом поле с именем EditSize. Но это значение имеет строковый тип, потому предварительно его нужно преобразовать в целое функцией StrToInt().

Добавим на форму элемент «палитра» — ColorDialog (панель Dialogs). Зададим свойству палитры Name значение ColorBox1. Добавим в обработчик события onMouseMove еще одну строку: image1.Canvas.Pen.Color:=ColorBox1.Selected;

Смысл этого кода в следующем: присвоить свойству карандаша «цвет», то значение, которое выбрано на палитре. Окончательно обработчик будет выглядеть, как показано на Листинге 7.

Сохранение изображения

Добавим на элемент Image1 элемент SaveDialog (панель Dialogs). В свойстве этого элемента DefaultExt установим *.bmp. А в свойстве Filter заполним таблицу Filter Editor, как показано на рисунке. Это нужно для того, чтобы рисунки сохранялись в формате BMP.

Добавим на форму кнопку с надписью «Сохранить» и привяжем к событию этой кнопки onClick процедуру, показанную на Листинге 8.

После компиляции графический редактор будет выглядеть, как показано на рисунке. Толщину линии и цвет можно выбирать, а готовое изображение сохранять нажатием на кнопку «Сохранить».

Так и не нашли ответ
на свой вопрос?

Просто напиши с чем тебе
нужна помощь