Прикладная программа «MyPaint»

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 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;

      1. Компонент 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;

Определяет возможность разрыва слов в случае, если длина выводимого текста превышает ширину компонента.


      1. Компонент 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;

      1. Компонент 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, где i - номер строки, отсчитываемый от нуля. Объект Lines[i] доступен и для чтения, и для записи.

      1. Компонент TOpenPictureDialog

 Компонент OpenPictureDialog предназначен для создания диалогов открытия файлов с графическим изображением. Он отличается от компонента OpenDialog возможностью предварительного просмотра файла изображения непосредственно в окне диалога. С помощью этого окна пользователь может выбрать изображения для преобразования из указанного пути, может установить тип файлов (их расширение).

Единственное отличие от свойств компонента TOpenDialog, так же как и для компонента TSavePictureDialog – заданное значение по умолчанию свойства Filter. В этих фильтрах перечислены все типы графических файлов, с которыми может работать диалог. Так что вам остается удалить, если хотите, фильтры тех файлов, с которыми вы не хотите работать, добавить, может быть, фильтр и перевести на русский язык названия типов.

          1. Компонент TSavePictureDialog

 Компонент SavePictureDialog создает диалог сохранения файла с изображением. Так же, как и OpenPictureDialog, имеет возможностью предварительною просмотра файла изображения непосредственно в окне диалога.

Свойство InitialDir определяет начальный каталог, который будет открыт в момент начала работы пользователя с диалогом. Если значение этого свойства не задано, то открывается текущий каталог или тот, который был открыт при последнем обращении пользователя к соответствующему диалогу в процессе выполнения данного приложения.

Свойство DefaultExt определяет значение расширения файла по умолчанию. Если значение этого свойства не задано, пользователь должен указать в диалоге полное имя файла с расширением. Если же задать значение DefaultExt, то пользователь может писать в диалоге имя без расширения. В этом случае будет принято заданное расширение.

Свойство Title позволяет вам задать заголовок диалогового окна. Если это свойство не задано, окно открывается с заголовком, определенным в системе.

          1. Компонент TColorDialog

 Компонент ColorDialog вызывает диалоговое окно выбора цвета, представленное на рис. 8.9. В нем пользователь может выбрать цвет из базовой палитры или, нажав кнопку «Определить цвет», раскрыть дополнительную панель, позволяющую синтезировать цвет, отличный от базовых. Синтезированный цвет можно добавить кнопкой «Добавить в набор» в палитру дополнительных цветов на левой панели и использовать его в дальнейшем. 

Основное свойство компонента ColorDialog — Color. Это свойство соответствует тому цвету, который выбрал в диалоге пользователь. Если при вызове диалога желательно установить некоторое начальное приближение цвета, это можно сделать, установив Color предварительно во время проектирования или программно.

Свойство CustomColors типа TStrings позволяет задать заказные цвета дополнительной палитры. Каждый цвет определяется строкой вида:

<Имя цвета>=<шестнадцатиричное  представление цвета>;

Имена цветов задаются от ColorA (первый цвет) до ColorP (шестнадцатый, последний).

Свойство Options состоит из следующего множества опций:

  • cdFullOpen - мы будем видим сразу же при открытии диалогового окна обе панели, как на рисунке вверху;
  • cdPreventFullOpen - кнопка "Определить цвет" будет недоступной (серого

цвета) и как следствие мы не сможем вызвать правую панель для определения цвета;

  • cdShowHelp - справа, после кнопки отмена в диалоговом окне появиться кнопка "Справка";
  • sdSolidColor - дается указание использовать ближний к выбранному сплошной цвет, что уменьшает палитру;
  • cdAnyColor – дает возможность выбрать не сплошные цвета.

Первоначально все опции отключены. 
ГЛАВА 2. РАЗРАБОТКА ПРОГРАММЫ «MyPaint»

2.1. Функциональная и логическая структура программы

Функциональные требования:

    • программа должна демонстрировать работу некоторых компонентов

редактора;

  • наглядно раскрывать все компоненты изучаемой темы;
  • должна обладать наглядным интерфейсом, направленным на быстрый

поиск необходимой информации.

Требования к графическому интерфейсу пользователя:

    • пользовательское меню;
    • элементы управления;
    • хорошо оформленный дизайн.

Физические требования:

  • наличие операционной системы Windows.

Информация будет представлена в виде:

  • графических изображений.

Требования к интерфейсу программы:

  • стандартный интерфейс приложения Windows.

Требования к уровню диалога:

  • доступный и понятный интерфейс, обеспечивающий лёгкое

использование данной программы.

2.2. Постановка задачи

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

Информация о работе Прикладная программа «MyPaint»