Автор работы: Пользователь скрыл имя, 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
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
государственное
бюджетное образовательное учреждение
высшего профессионального образования
«тюменский государственный нефтегазовый университет»
Институт кибернетики, информатики и связи
Отделение информационных технологий и вычислительной техники
КУРСОВОЙ ПРОЕКТ
по дисциплине
«Прикладное программирование»
НА ТЕМУ
Прикладная программа «MyPaint»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Студента _Вабиева Р.Н.
__________________«____»______
Ф.И.О. студента подпись
Группа __ПКСт-11-(11)-1___
Специальность __230115___ «Программирование в компьютерных системах»_
Руководитель _Аристов С.Р.______________ «____»_________________201_г.
Ф.И.О. руководителя подпись
2013
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
ГЛАВА 1. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬНЫХ КОМПОНЕНТОВ 4
части курсовой работы и возможностей их использования 4
ГЛАВА 2. РАЗРАБОТКА ПРОГРАММЫ «MyPaint» 17
2.4. Описание пользовательского интерфейса 23
2.5. Технические условия эксплуатации программы 25
ЗАКЛЮЧЕНИЕ 26
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 27
ПРИЛОЖЕНИЕ 30
ВВЕДЕНИЕ
Для создания и редактирования изображений в настоящее время в основном используется графические редакторы, позволяющие пользователю создавать и редактировать изображения.
Целью курсовой работы является разработка программы «MyPaint», которая позволяет пользователю просматривать, редактировать и сохранять графические изображения в файле.
Из поставленной цели вытекают следующие задачи, которые необходимо решить для разработки данного приложения:
ГЛАВА 1. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬНЫХ КОМПОНЕНТОВ
Для создания демонстрационной программы в качестве средства разработки была выбрана среда программирования Borland Delphi 7, так как Delphi - это одна из самых популярных систем визуального программирования.
Delphi - это комбинация нескольких важнейших технологий:
Компилятор, встроенный в Delphi, обеспечивает высокую производительность. Этот компилятор является одним из самых быстрых в мире. Он предлагает легкость разработки и быстрое время проверки готового программного блока и в то же время обеспечивает качество кода.
Кроме того, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это сказывается на фактическом быстродействии готового приложения.
ScrollBox позволяет создавать на форме прокручиваемую область с размерами большими, чем экран. Объединяется эта область вертикальными и горизонтальными линейками прокрутки.
Компонент ScrollBox расположен на вкладке Additional.
Свойство BorderStyle определяет стиль рамки компонента ScrollBox. Свойство AutoScroll позволяет задать автоматическое появление необходимых полос прокрутки, если размер размещенных компонентов превышает размер области по горизонтали, вертикали или в обоих измерениях. Если по каким-то соображениям это нежелательно, вы можете сами управлять появлением горизонтальной и вертикальной полос с помощью свойств HorzScrollBar и VertScrollBar соответственно. Но в этом случае вы должны сами задавать ряд свойств полосы прокрутки и, прежде всего, Range – размер в пикселах прокручиваемой области. Значение перемещения при однократном нажатии пользователем кнопки прокрутки может рассчитываться компонентом автоматически исходя из размеров области и окна, если свойство полосы прокрутки Smooth установлено в true. В противном случае вы должны задать величину единичного перемещения в свойстве Increment.
TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.
Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Additional.
Этот компонент служит надстройкой над классом TPicture и замыкает всю иерархию графических объектов VCL. Он предназначен для показа на форме изображения: битовой карты (TBitmap), метафайла (TMetafile), значка (TIcon).
Свойство (Pb) property Picture: TPicture; служит контейнером для графического объекта одного из перечисленных классов.
В качестве канвы используется канва объекта Picture. Graphic — только если поле Graphic ссылается на объект класса TBitmap:
(Pb) property Canvas: TCanvas;
Если это не так, то попытка обращения к свойству вызовет исключительную ситуацию EInvalidOperation, так как рисовать на метафайле или значке нельзя.
Следующие три свойства определяют, как именно Tpicture располагается в рабочей области компонента:
(Pb) property AutoSize: Boolean; — означает, что размеры компонента настраиваются по размерам содержащегося в нем графического объекта. Устанавливать его в True нужно перед загрузкой изображения из файла или буфера обмена;
(Pb) property Stretch: Boolean; — если это свойство установлено в True, то изображение "натягивается" на рабочую область, при необходимости уменьшая или увеличивая свои размеры. Если оно установлено в False, то играет роль следующее свойство;
(Pb) property Center: Boolean; — если это свойство установлено в True, изображение центрируется в пределах рабочей области. В противном случае — располагается в ее верхнем левом углу.
TMainMenu позволяет поместить главное меню в программу. Это невизуальный компонент, т.е. место его размещения на форме в процессе проектирования не имеет никакого значения для пользователя – он все равно увидит не сам компонент, а только меню, сгенерированное им.
Этот компонент доступен из модуля MENUS, и находится на странице Палитры компонентов Standard.
Основное свойство компонента – Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора объектов.
Каждый элемент свойства Items является объектом типа TMainMenu, обладающим своими свойствами, методами и событиями:
Caption – надпись раздела, если в качестве Caption вставить символ «-», то в меню появится разделитель (-----------).
Name – имя объекта, соответствующего разделу меню.
ShotCut – определяет клавиши быстрого доступа к разделу меню.
Default – определяет, является ли данный раздел разделом по умолчанию своего подменю, т.е. разделом, выполняемым при двойном щелчке пользователя на родительском разделе; подменю может содержать только один раздел по умолчанию, выделяемый жирным шрифтом.
Checked – установленное в trueуказывает, что в разделе меню будет отображаться маркер флажка, показывающий, что данный раздел выбран.
RadioItem – при установке в true определяет, что данный раздел должен работать в режиме радиокнопки совместно с другими разделами, имеющие то же значение свойства GroupIndex.
Наличие или отсутствие объединения определяется свойством AutoMerge компонентов TMainMenu.
Способ объединения меню определяется свойством разделов GroupIndex. Разделам надо задать неубывающие номера свойств GroupIndex. Тогда, если разделы встраиваемого меню имеют те же значения GroupIndex, что и какие-то разделы меню основной формы, то эти разделы заменяют соответствующие разделы основного меню. В противном случае разделы вспомогательного меню встраиваются между элементами основного меню.
Создание меню включает три шага:
1) помещение TMainMenu на форму;
2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов;
3) определение пунктов меню в Дизайнере Меню.
TPanel – управляющий элемент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания панели инструментов и окна статуса.
Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Standard.
Этот компонент — является несущей конструкцией для размещения других элементов управления. В отличие от простой рамки (TBevel) панель сама является оконным элементом управления и родителем для всех размещенных на ней компонентов. Часто ее используют для создания панелей инструментов, строк состояния и т. п.
За внешнее оформление панели отвечают свойства:
(Pb) property Bevel Inner: TPanelBevel;
(Рb) property BevelOuter: TPanelBevel;
TPanelBevel = (bvNone, bvLowered, bvRaised) ;
(Pb) property BevelWidth: TBevelWidth;
TBevelWidth = 1..Maxint;
(Pb) property BorderWidth: TBorderWidth;
TBorderWidth = 0..Maxint ;
На границах панели размещаются две специальные окаймляющие рамки (bevels): Bevellnner и BevelOuter. При помощи комбинации белого и серого цветов они имитируют трехмерность — приподнятость (bvRaised) или утоп-ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная — BevelOuter — расположена прямо по периметру панели, вторая — Bevellnner — внутри на расстоянии BorderWidth от нее. Обе могут быть невидимыми (bvNone), приподнятыми или утопленными.
Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели "ров" или "вал".
Иллюзию трехмерности может подчеркнуть также стиль обрамления компонента:
(Pb) property BorderStyle: TBorderStyle;
TBorderStyle = bsNone .. bsSingle;
Значение bsSingle означает, что панель будет окаймлена черной линией единичной толщины (по периметру, снаружи от обеих рамок).
Выравнивание текста заголовка панели определяется при помощи свойства:
(Pb) property Alignment: TAlignment;
Свойство (Pb) property Locked: boolean; предназначено для определения способа взаимодействия панели с размещенными на ней объектами OLE. Если оно равно True, при активизации сервера OLE "по месту'" не могут заместить панель.
В обработчике события: (Pb) property OnResize: TNotifyEvent; предусмотрена реакция пользователя на изменение размеров панели.