Прикладная программа «MyPaint»
Курсовая работа, 25 Февраля 2015, автор: пользователь скрыл имя
Краткое описание
Целью курсовой работы является разработка программы «MyPaint», которая позволяет пользователю просматривать, редактировать и сохранять графические изображения в файле.
Из поставленной цели вытекают следующие задачи, которые необходимо решить для разработки данного приложения:
изучить методическую литературу по технологии разработки программных продуктов;
изучить теоретические аспекты среды программирования Delphi;
Содержание
ВВЕДЕНИЕ 3
ГЛАВА 1. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬНЫХ КОМПОНЕНТОВ 4
Этапы разработки программных продуктов 4
Описание компонентов, используемых при реализации практической
части курсовой работы и возможностей их использования 4
Компонент TScrollBox 4
Компонент TImage 5
Компонент TMainMenu 6
Компонент TPanel 7
Компонент TColorGrid 9
Компонент TLabel 10
Компонент TSpeedButton 12
Компонент TMemo 13
Компонент TOpenPictureDialog 14
Компонент TSavePictureDialog 15
Компонент TColorDialog 16
ГЛАВА 2. РАЗРАБОТКА ПРОГРАММЫ «MyPaint» 17
Функциональная и логическая структура программы 17
Постановка задачи 17
Разработка программного продукта проекта 19
Описание алгоритма и реализация программы 19
Отладка и тестирование программы 21
2.4. Описание пользовательского интерфейса 23
2.5. Технические условия эксплуатации программы 25
ЗАКЛЮЧЕНИЕ 26
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 27
Прикрепленные файлы: 1 файл
Курсовой_проект[1].docx
— 359.03 Кб (Скачать документ)Компонент TColorGrid предназначен для выбора цвета. Позволяет выбрать два цвета – фона и рисования. Имена свойств, содержащих номера выбранных цветов BackgroundIndex и ForegroundIndex.
Некоторые свойства компонента:
- BackgroundEnabled - возможность выбора фонового цвета;
- BackgroundIndex - номер выбранного фонового цвета;
- ForegroundEnabled - возможность выбора основного цвета;
- ForegroundIndex - номер выбранного основного цвета;
- ForegroundColor - выбранный основной цвет;
- GridOrdering - расположение цветов.
Компонент ColorGrid работает при щелчке по нему левой кнопкой мыши, устанавливается значок FG (ForegroundColor – цвет переднего плана, или цвет рисования), а при щелчке правой кнопкой мыши устанавливается значок BG (BackgroundColor – цвет фона).
ForegroundColor и BackgroundColor представляют собой свойства компонента ColorGrid, которые доступны программисту для чтения во время работы программы.
Используем эти свойства для установки цвета рисования и цвета фона для компонента Image1.При изменении компонента ColorGrid1 будем изменять цвет пера и кисти для Image1. Для этого создайте для ColorGrid1 обработчик события onChange и внесите в него следующие строки:
Image1.Canvas.Pen.Color:= ColorGrid1.ForegroundColor;
Image1.Canvas.Brush.Color:= ColorGrid1.BackgroundColor;
- Компонент TLabel
TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.
Этот компонент доступен из модуля STDCTRLS, и находится на странице Палитры компонентов Standard.
Компонент представляет собой статический текст. С помощью этого компонента на рабочей поверхности формы можно отобразить информацию, сделать пояснения и показать названия других компонентов. Но он имеет и другую важную функцию — если в составе текста TLabel есть символы-акселераторы, информация об их нажатии может передаваться от TLabel другому элементу управления.
Свойства компонента приведены в табл.1:
Таблица 1.Свойства компонента TLabel
Свойство |
Описание |
(Pb) property Caption: TCaption; TCaption = string[255]; |
Содержит строку с выводимым текстом. |
(Pb) property Alignment: TAlignment; |
Устанавливает правило выравнивания текста — по правому, левому краю или по центру клиентской области. |
(Pb) property AutoSize: Boolean; |
В случае True происходит автоматическое приведение размеров компонента к размерам текста и высоте шрифта. |
(Pb) property ShowAccelChar: Boolean; |
Показывает, отображается ли в TLabel акселератор (символ, перед которым стоит знак амперсанда — '&'). Если оно равно False, амперсанд никак не интерпретируется. В случае True акселератор выделяется в строке подчеркиванием и нажатие клавиш <Аlt>+<символ> приводит к передаче фокуса окну FocusControl (т.к. TLabel сам не является оконным компонентом). |
(Pb) property FocusControl: TWinControl; |
Определяет оконный компонент, которому посылаются сообщения о вводе акселератора. |
(Pb) property Transparent: Boolean; |
Прозрачность фона компонента. Если свойство установлено в True, то при перерисовке элемента управления не происходит закрашивание клиентской области. В противном случае — происходит закрашивание кистью bsSolid и цветом Color. |
(Pb) property WordMrap: Boolean; |
Определяет возможность разрыва слов в случае, если длина выводимого текста превышает ширину компонента. |
- Компонент TSpeedButton
TSpeedButton - кнопка для создания панели быстрого доступа к командам (SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi. Обычно на данную кнопку помещается только картинка (glyph).
Этот компонент доступен из модуля BUTTONS, и находится на странице Палитры компонентов Additional.
Эта кнопка с изображением может иметь как зависимую, так и независимую фиксацию. Она удобна для применения в составе панелей инструментов. Поведение этих кнопок во многом определяется свойством:
(Pb) property Grouplndex: Integer;
Если Grouplndex равен нулю, у кнопки вообще нет фиксации в нажатом состоянии и она не зависит от остальных кнопок, принадлежащих тому же родительскому элементу. Кнопки в группе (то есть с одинаковым ненулевым значением Grouplndex) имеют зависимую фиксацию. Она также зависит от свойства:
(Pb) property AllowAlIUp: Boolean;
которое описывает поведение кнопок в группе, а именно: могут ли все кнопки одновременно быть отжаты. Если AllowAlIUp равно False (по умолчанию), нажатую кнопку в группе можно отпустить, лишь нажав другую. Если AllowAlIUp равно True, кнопку можно отпустить повторным нажатием.
Если необходимо фиксировать одну кнопку TSpeedButton, ей нужно присвоить уникальный групповой индекс, а AllowAlIUp установить в True.
Поскольку в группе не могут одновременно находиться кнопки с различным значением этого свойства, при нажатии кнопки и изменении Grouplndex свойство AllowAlIUp "рассылается" (присваивается) остальным кнопкам с тем же значением Grouplndex. В группе не может быть нажато более одной кнопки. Определяет, нажата ли кнопка, свойство:
(Pb) property Down: Boolean;
Это свойство может изменяться как системой, так и программистом. Например, если при запуске программы необходимо, чтобы одна из кнопок уже была нажатой, ее свойство Down устанавливают в True.
Текст кнопки определяет свойство Caption. Компонент имеет те же правила и свойства рисования картинки, что и TBitBtn. Они описываются свойствами Glyph, NumGlyphs, Layout, Margin и Spacing.
Для имитации щелчка предусмотрен метод Click. Двойной щелчок для TSpeedButton возможен только на нажатой кнопке — иначе он интерпретируется как обычный. Описывается свойством:
(Pb) property OnDblClick;
- Компонент TMemo
Компонент Memo позволяет вводить текст, состоящий из достаточно большого количества строк, поэтому его удобно использовать для ввода символьного массива. Компонент Memo добавляется в форму обычным образом. Значок компонента находится на вкладке Standard.
Свойства компонента Memo приведены в табл.2:
Таблица 2. Свойства компонента Memo
Свойство |
Описание |
Name |
Определяет имя компонента. Используется в программе для доступа к свойствам компонента. |
Text |
Определяет текст, находящийся в поле Memo. Рассматривается как единое целое. |
Lines |
Определяет текст, находящийся в поле Memo. Рассматривается как совокупность строк. Доступ к строке осуществляется по номеру. |
Lines .Count |
Определяет количество строк текста в поле Memo. |
Left |
Определяет расстояние от левой границы поля до левой границы формы. |
Top |
Определяет расстояние от верхней границы поля до верхней границы формы. |
Height |
Определяет высоту поля. |
Width |
Определяет ширину поля. |
Font |
Определяет шрифт, используемый для отображения вводимого текста. |
ParentFont |
Определяет признак наследования свойств шрифта родительской формы. |
При использовании компонента Memo для ввода массива значение каждого элемента массива следует вводить в отдельной строке и после ввода каждого элемента массива нажимать клавишу <Enter>.
Получить доступ к находящейся в поле Memo строке текста можно при помощи свойства Lines, указав в квадратных скобках номер нужной строки (строки нумеруются с нуля).
Текстовый редактор Memo не обладает возможностями
форматирования содержещегося в нём текста.
Это означает, что все атрибуты выбранного
шрифта будут относиться ко всему тексту. Текст
в компоненте Memo размещается построчно. Поэтому
имеется доступ к каждой строке текста
отдельно. Строки в редакторе Memo являются объектами Lines[i] типа String
- Компонент TOpenPictureDialog
Компонент OpenPictureDialog предназначен для создания диалогов открытия файлов с графическим изображением. Он отличается от компонента OpenDialog возможностью предварительного просмотра файла изображения непосредственно в окне диалога. С помощью этого окна пользователь может выбрать изображения для преобразования из указанного пути, может установить тип файлов (их расширение).
Единственное отличие от свойств компонента TOpenDialog, так же как и для компонента TSavePictureDialog – заданное значение по умолчанию свойства Filter. В этих фильтрах перечислены все типы графических файлов, с которыми может работать диалог. Так что вам остается удалить, если хотите, фильтры тех файлов, с которыми вы не хотите работать, добавить, может быть, фильтр и перевести на русский язык названия типов.
- Компонент TSavePictureDialog
Компонент SavePictureDialog создает диалог сохранения файла с изображением. Так же, как и OpenPictureDialog, имеет возможностью предварительною просмотра файла изображения непосредственно в окне диалога.
Свойство InitialDir определяет начальный каталог, который будет открыт в момент начала работы пользователя с диалогом. Если значение этого свойства не задано, то открывается текущий каталог или тот, который был открыт при последнем обращении пользователя к соответствующему диалогу в процессе выполнения данного приложения.
Свойство DefaultExt определяет значение расширения файла по умолчанию. Если значение этого свойства не задано, пользователь должен указать в диалоге полное имя файла с расширением. Если же задать значение DefaultExt, то пользователь может писать в диалоге имя без расширения. В этом случае будет принято заданное расширение.
Свойство Title позволяет вам задать заголовок диалогового окна. Если это свойство не задано, окно открывается с заголовком, определенным в системе.
- Компонент TColorDialog
Компонент ColorDialog вызывае
Основное свойство компонента ColorDialog — Color. Это свойство соответствует тому цвету, который выбрал в диалоге пользователь. Если при вызове диалога желательно установить некоторое начальное приближение цвета, это можно сделать, установив Color предварительно во время проектирования или программно.
Свойство CustomColors типа
<Имя цвета>=<
Имена цветов задаются от ColorA (первый цвет) до ColorP (шестнадцатый, последний).
Свойство Options состоит из следующего множества опций:
- cdFullOpen - мы будем видим сразу же при открытии диалогового окна обе панели, как на рисунке вверху;
- cdPreventFullOpen - кнопка "Определить цвет" будет недоступной (серого
цвета) и как следствие мы не сможем вызвать правую панель для определения цвета;
- cdShowHelp - справа, после кнопки отмена в диалоговом окне появиться кнопка "Справка";
- sdSolidColor - дается указание использовать ближний к выбранному сплошной цвет, что уменьшает палитру;
- cdAnyColor – дает возможность выбрать не сплошные цвета.
Первоначально все опции отключены.
ГЛАВА 2. РАЗРАБОТКА ПРОГРАММЫ
«MyPaint»
2.1. Функциональная и логическая структура программы
Функциональные требования:
- программа должна демонстрировать работу некоторых компонентов
редактора;
- наглядно раскрывать все компоненты изучаемой темы;
- должна обладать наглядным интерфейсом, направленным на быстрый
поиск необходимой информации.
Требования к графическому интерфейсу пользователя:
- пользовательское меню;
- элементы управления;
- хорошо оформленный дизайн.
Физические требования:
- наличие операционной системы Windows.
Информация будет представлена в виде:
- графических изображений.
Требования к интерфейсу программы:
- стандартный интерфейс приложения Windows.
Требования к уровню диалога:
- доступный и понятный интерфейс, обеспечивающий лёгкое
использование данной программы.
2.2. Постановка задачи
Требуется разработать приложение, состоящее из главной формы. Приложение должно демонстрировать пользователю работу базовых функций графического редактора Paint в среде программирования Borland Delphi 7.