Автор работы: Пользователь скрыл имя, 25 Февраля 2015 в 15:01, курсовая работа
Целью курсовой работы является разработка программы «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
Компонент TColorGrid предназначен для выбора цвета. Позволяет выбрать два цвета – фона и рисования. Имена свойств, содержащих номера выбранных цветов BackgroundIndex и ForegroundIndex.
Некоторые свойства компонента:
Компонент 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 служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство 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 - кнопка для создания панели быстрого доступа к командам (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;
Компонент 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
Компонент OpenPictureDialog предназначен для создания диалогов открытия файлов с графическим изображением. Он отличается от компонента OpenDialog возможностью предварительного просмотра файла изображения непосредственно в окне диалога. С помощью этого окна пользователь может выбрать изображения для преобразования из указанного пути, может установить тип файлов (их расширение).
Единственное отличие от свойств компонента TOpenDialog, так же как и для компонента TSavePictureDialog – заданное значение по умолчанию свойства Filter. В этих фильтрах перечислены все типы графических файлов, с которыми может работать диалог. Так что вам остается удалить, если хотите, фильтры тех файлов, с которыми вы не хотите работать, добавить, может быть, фильтр и перевести на русский язык названия типов.
Компонент SavePictureDialog создает диалог сохранения файла с изображением. Так же, как и OpenPictureDialog, имеет возможностью предварительною просмотра файла изображения непосредственно в окне диалога.
Свойство InitialDir определяет начальный каталог, который будет открыт в момент начала работы пользователя с диалогом. Если значение этого свойства не задано, то открывается текущий каталог или тот, который был открыт при последнем обращении пользователя к соответствующему диалогу в процессе выполнения данного приложения.
Свойство DefaultExt определяет значение расширения файла по умолчанию. Если значение этого свойства не задано, пользователь должен указать в диалоге полное имя файла с расширением. Если же задать значение DefaultExt, то пользователь может писать в диалоге имя без расширения. В этом случае будет принято заданное расширение.
Свойство Title позволяет вам задать заголовок диалогового окна. Если это свойство не задано, окно открывается с заголовком, определенным в системе.
Компонент ColorDialog вызывае
Основное свойство компонента ColorDialog — Color. Это свойство соответствует тому цвету, который выбрал в диалоге пользователь. Если при вызове диалога желательно установить некоторое начальное приближение цвета, это можно сделать, установив Color предварительно во время проектирования или программно.
Свойство CustomColors типа
<Имя цвета>=<
Имена цветов задаются от ColorA (первый цвет) до ColorP (шестнадцатый, последний).
Свойство Options состоит из следующего множества опций:
цвета) и как следствие мы не сможем вызвать правую панель для определения цвета;
Первоначально все опции отключены.
ГЛАВА 2. РАЗРАБОТКА ПРОГРАММЫ
«MyPaint»
2.1. Функциональная и логическая структура программы
Функциональные требования:
редактора;
поиск необходимой информации.
Требования к графическому интерфейсу пользователя:
Физические требования:
Информация будет представлена в виде:
Требования к интерфейсу программы:
Требования к уровню диалога:
использование данной программы.
2.2. Постановка задачи
Требуется разработать приложение, состоящее из главной формы. Приложение должно демонстрировать пользователю работу базовых функций графического редактора Paint в среде программирования Borland Delphi 7.