Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мой курсач.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.15 Mб
Скачать

Министерство образования РФ

«РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра ЭВМ

К защите

Руководитель проекта

___________________

дата, подпись

Пояснительная записка к курсовому проекту

по дисциплине

«Объектно-ориентированное программирование»

по теме

«Создание компонента PicturedButton»

Выполнила студентка группы 040

Левина Е.С. ____________________________

дата сдачи на проверку, подпись

Руководитель проекта

Громов А.Ю. ______________ _______________________

оценка дата защиты, подпись

Рязань 2013

2 Техническое задание 4

2.1 ОСНОВАНИЯ ДЛЯ РАЗРАБОТКИ ПРОГРАММЫ 4

2.2 НАЗНАЧЕНИЕ РАЗРАБОТКИ 4

2.3 ТРЕБОВАНИЯ К КОМПОНЕНТУ 4

2.4 ТРЕБОВАНИЯ К НАДЁЖНОСТИ 4

2.5 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ 4

2.6 ТЕКСТ ЗАДАНИЯ НА РАЗРАБОТКУ ПО ВАРИАНТУ 5

3 ОПИСАНИЕ РАЗРАБОТАННОГО КОМПОНЕНТА 6

3.1 ОБЩИЕ СВЕДЕНИЯ 6

3.2 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ 6

3.3 ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ 6

3.5 ВЫЗОВ И ЗАГРУЗКА 28

3.6 ВХОДНЫЕ ДАННЫЕ 28

3.7 ВЫХОДНЫЕ ДАННЫЕ 28

3.8 РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ 28

3.9 РАЗРАБОТКА ЗНАЧКА КОМПОНЕНТА 30

3.10 РАЗРАБОТКА УСТАНОВОЧНОЙ ПРОГРАММЫ ДЛЯ ПРОГРАММЫ ТЕСТИРОВАНИЯ 32

4 Программа и методика испытаний 36

4.1 ОБЪЕКТ ИСПЫТАНИЙ 36

4.2 ЦЕЛЬ ИСПЫТАНИЙ 36

4.3 ТРЕБОВАНИЯ К КОМПОНЕНТУ 36

4.4 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ 36

4.5 СРЕДСТВА И ПОРЯДОК ИСПЫТАНИЙ 36

4.6 МЕТОДЫ ИСПЫТАНИЙ 37

5 Эксплуатационные документы 56

5.1 РУКОВОДСТВО ПРОГРАММИСТА 56

5.1.1 ОБЩИЕ СВЕДЕНИЯ О КОМПОНЕНТЕ 56

5.1.2 СТРУКТУРА КОМПОНЕНТА 56

5.1.3 НАСТРОЙКА КОМПОНЕНТА 56

5.1.4 ПРОВЕРКА КОМПОНЕНТА 58

5.1.5 ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ КОМПОНЕНТА 58

5.1.6 СООБЩЕНИЯ СИСТЕМНОМУ ПРОГРАММИСТУ 58

5.2 РУКОВОДСТВО ОПЕРАТОРА (ПОЛЬЗОВАТЕЛЯ) 58

5.2.1 НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ КОМПОНЕНТА 58

5.2.2 ВЫПОЛНЕНИЕ ПРОГРАММЫ ТЕСТИРОВАНИЯ КОМПОНЕНТА 59

5.2.3 ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ 60

5.2.4 СООБЩЕНИЯ ОПЕРАТОРУ 60

6 Приложение 62

6.1 ТЕКСТ ОСНОВНОГО МОДУЛЯ КОМПОНЕНТА PICTUREDBUTTON 62

6.2 СКРИНШОТЫ РАБОТЫ ПРОГРАММЫ PICTUREDBUTTON_DEMO 72

7 Список литературы 79

1 Введение

Компонент TPictureButton разработан в рамках курсовой работы по дисциплине «Объектно-ориентированное программирование» в среде программирования Delphi на языке Object Pascal.

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

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

В курсовой работе ставится задача разработки компонента, а также его отладки и тестирования.

Исходными данными для работы являются:

  • исходный текст задания согласно варианту (см. п. 2.6);

  • операционная среда программирования: персональный компьютер модели IBM PC, операционная система Windows (XP/Vista/7), система программирования Delphi 7;

  • метод проектирования: модульное объектно-ориентированное программирование.

2 ТЕХНИЧЕСКОЕ ЗАДАНИЕ

2.1 ОСНОВАНИЯ ДЛЯ РАЗРАБОТКИ ПРОГРАММЫ

Основанием для разработки данной программы является задание на курсовую работу.

Дата утверждения: 2013 г.

Организация, утвердившая документ: РГРТУ

Тема разработки: Разработка визуального компонента.

2.2 НАЗНАЧЕНИЕ РАЗРАБОТКИ

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

2.3 ТРЕБОВАНИЯ К КОМПОНЕНТУ

  1. Компонент должен иметь функцию загрузки изображений, которые выводятся при определенных событиях мыши.

  2. В остальном компонент должен выполнять функции обычной кнопки.

2.4 ТРЕБОВАНИЯ К НАДЁЖНОСТИ

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

2.5 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

Документация к программе представлена согласно требованиям источника [1] следующими разделами:

  1. Введение.

  2. Техническое задание. (Раздел оформлен по ГОСТ 19.201-78).

  3. Описание разработанной программы. (ГОСТ 19.402-78).

  4. Программа и методика испытаний. (ГОСТ 19.301-79).

  5. Эксплуатационные документы:

  1. руководство программиста (ГОСТ 19.504-79);

  2. руководство оператора (ГОСТ 19.505-79).

  1. Приложение.

  2. Список литературы.

2.6 ТЕКСТ ЗАДАНИЯ НА РАЗРАБОТКУ ПО ВАРИАНТУ

Вариант №24.

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

3 ОПИСАНИЕ РАЗРАБОТАННОГО КОМПОНЕНТА

3.1 ОБЩИЕ СВЕДЕНИЯ

Название главного модуля компонента: PicturedButton.pas

Название пакета для установки компонента в систему Delphi7: Button_Pack.dpk

Для функционирования компонента требуется операционная система семейства Windows 9х/NT/2000/XP/Vista/Windows7.

Компонент разработан в среде программирования Borland Delphi 7 на языке Object Pascal.

3.2 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ

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

3.3 ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ

Логическая структура компонента.

В соответствии с заданием на курсовой проект, компонент должен выполнять функции кнопки. Дополнительно должна обеспечиваться загрузка изображений, которые выводятся при определенных событиях мыши. Следовательно, наиболее удобным «родителем» для разрабатываемого компонента будет класс TCustomControl из библиотеки визуальных компонентов VCL. Этот класс предназначен для создания на его основе нестандартных оконных элементов управления. Процесс визуализации в нем упрощен за счет использования специального класса TCanvas, инкапсулирующего канву. Для реализации заданных функций при разработке компонента необходимо добавить новые свойства и методы.

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

Свойства:

  1. «ClickImage», «MDblClickImage», «LeftMDownImage», «RightMDownImage», «MouseUpImage», «MouseMoveImage», «MouseEnterImage», «MouseLeaveImage» - предназначены для хранения изображений, которые выводятся при соответствующих событиях мыши.

  2. «PictMode» - предназначено для установки способа вывода изображения.

  3. «Caption» - предназначено для хранения текста надписи.

  4. «Color» - предназначено для задания цвета кнопки.

Методы:

  1. Методы «SetClickImage», «SetMDblClickImage», «SetLeftMDownImage», «SetRightMDownImage», «SetMouseUpImage», «SetMouseMoveImage», «SetMouseEnterImage», «SetMouseLeaveImage» - предназначены для установки значений вышеперечисленных свойств.

  2. Метод «SetPictMode» - предназначен для установки значения свойства «PictMode».

  3. Метод «SetCaption» - предназначен для установки текста надписи.

  4. Метод «DrawPicture» - реализует рисование изображения на кнопке.

  5. Метод «DrawCaption» - реализует вывод надписи.

  6. Метод «BtnDown» и «BtnUp» - задают внешний вид кнопки соответственно при нажатом и отпущенном состоянии.

  7. Метод «Create» - конструктор разрабатываемого компонента.

  8. Метод «Paint» - предназначен для рисования кнопки.

  9. Метод «Loaded» - представляет собой последовательность действий, выполняемых программой при загрузке компонента.

  10. Методы «MouseEnter», «MouseLeave», «MouseDown», «MouseUp», «MouseMove», «DblClick», «Click» - реализуют вывод изображений при соответствующем событии мыши.

  11. Методы «DelClickImage», «DelMDblClickImage», «DelLeftMDownImage», «DelRightMDownImage», «DelMouseUpImage», «DelMouseMoveImage», «DelMouseEnterImage», «DelMouseLeaveImage» - процедуры удаления изображений из свойств.

Поля и методы компонента описаны в модуле PicturedButton.pas.

Методы компонента:

Методы 1 – Установка значений свойств «ClickImage», «MDblClickImage», «LeftMDownImage», «RightMDownImage», «MouseUpImage», «MouseMoveImage», «MouseEnterImage», «MouseLeaveImage».

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

Заголовки методов:

procedure SetClickImage(Value: TBitmap);

procedure SetDblClickImage(Value: TBitmap);

procedure SetLeftMDownImage(Value: TBitmap);

procedure SetRightMDownImage(Value: TBitmap);

procedure SetMouseUpImage(Value: TBitmap);

procedure SetMouseMoveImage(Value: TBitmap);

procedure SetMouseEnterImage(Value: TBitmap);

procedure SetMouseLeaveImage(Value: TBitmap);

Процедура SetClickImage предназначена для установки значения свойства ClickImage. Схема алгоритма представлена на рисунке 1.

Процедура SetDblClickImage предназначена для установки значения свойства MDblClickImage. Схема алгоритма представлена на рисунке 2.

Процедура SetLeftMDownImage предназначена для установки значения свойства LeftMDownImage. Схема алгоритма представлена на рисунке 3.

Процедура SetRightMDownImage предназначена для установки значения свойства RightMDownImage. Схема алгоритма представлена на рисунке 4.

Процедура SetMouseUpImage предназначена для установки значения свойства MouseUpImage. Схема алгоритма представлена на рисунке 5.

Процедура SetMouseMoveImage предназначена для установки значения свойства MouseMoveImage. Схема алгоритма представлена на рисунке 6.

Процедура SetMouseEnterImage предназначена для установки значения свойства MouseEnterImage. Схема алгоритма представлена на рисунке 7.

Процедура SetMouseLeaveImage предназначена для установки значения свойства MouseLeaveImage. Схема алгоритма представлена на рисунке 8.

Входным параметром данных процедур является объект класса TBitmap, который хранит определенное изображение.

Выходных параметров нет.

Рисунок 1 – Схема алгоритма метода «SetClickImage»

Рисунок 2 – Схема алгоритма метода «SetDblClickImage»

Рисунок 3 – Схема алгоритма метода «SetLeftMDownImage»

Рисунок 4 – Схема алгоритма метода «SetRightMDownImage»

Рисунок 5 – Схема алгоритма метода «SetMouseUpImage»

Рисунок 6 – Схема алгоритма метода «SetMouseMoveImage»

Рисунок 7 – Схема алгоритма метода «SetMouseEnterImage»

Рисунок 8 – Схема алгоритма метода «SetMouseLeaveImage»

Метод 2 – Установка значения свойства «PictMode».

Заголовок метода:

procedure SetPictMode(Value: TPictureMode);

Входным параметром является значение типа TPictureMode. Данный тип описан в модуле компонента и представляет собой набор трех значений: pmNone, pmProportional и pmStretch.

Описание типа:

TPictureMode = (pmNone, pmStretch, pmProportional);

Каждое значение определяет способ вывода изображения.

Выходных параметров нет.

Схема алгоритма процедуры представлена на рисунке 9.

Рисунок 9 – Схема алгоритма метода «SetPictMode»

Метод 3 – Установка текста надписи.

Заголовок метода:

procedure SetCaption(Value: string);

Входным параметром является строка (тип string).

Выходных параметров нет.

Схема алгоритма процедуры представлена на рисунке 10.

Рисунок 10 – Схема алгоритма метода «SetCaption»

Метод 4 – Рисование изображения на кнопке.

Заголовок метода:

procedure DrawPicture(Pict: TBitmap);

Данный метод предназначен для рисования изображения на кнопке.

Входным параметром является графический объект типа TBitmap. Вначале проверяется, содержит ли этот объект изображение или нет. Если содержит, то оно масштабируется и выводится. Перед выводом старое изображение стирается.

Для рисования изображения используется метод Draw свойства компонента Canvas. Координаты вывода изображения хранятся в глобальных переменных OutLeft и OutTop типа integer.

Переменные OutLeft и OutTop описаны в модуле компонента.

Поверх изображения выводится текст надписи с помощью процедуры DrawCaption.

Схема алгоритма данной процедуры представлена на рисунке 11.

Рисунок 11 – Схема алгоритма метода «DrawPicture»

В процедуре используется вспомогательная функция «SetSizeImage».

Заголовок функции:

function SetSizePicture(bmp: TBitmap): TBitmap;

Данная функция предназначена для масштабирования изображения. Также в ней устанавливаются координаты вывода изображения. Масштабирование происходит в соответствии с выбранным режимом отображения.

При режиме pmNone размеры изображения сохраняются. Если изображение меньше кнопки, то оно выводится в центре, если больше, то левые верхние углы кнопки и изображения совпадают.

При режиме pmProportional изображение полностью выводится, при этом сохраняются его пропорции.

При режиме pmStretch изображение выводится по размеру кнопки, и его пропорции не сохраняются.

В качестве входного параметра выступает переменная типа TBitmap, которая содержит исходное изображение.

Выходным параметром является отмасштабированное исходное изображение.

Схема алгоритма функции представлена на рисунке 12.

Рисунок 12 – Схема алгоритма функции «SetSizePicture»

Метод 5 – Реализует вывод надписи.

Заголовок метода:

procedure DrawCaption;

Процедура предназначена для вывода текста, указанного в свойстве «Caption».

Входные и выходные параметры отсутствуют.

Схема алгоритма процедуры представлена на рисунке 13.

Рисунок 13 – Схема алгоритма метода «DrawCaption»

Методы 6 – Задание внешнего вида кнопки.

Заголовки методов:

procedure BtnDown;

procedure BtnUp;

Данные методы предназначены для задания внешнего вида кнопки.

Процедура BtnDown рисует кнопку в нажатом состоянии. Процедура BtnUp – в отпущенном.

Входных и выходных параметров нет.

Схемы алгоритма данных процедур представлены на рисунках 14 – 15.

Рисунок 14 – Схема алгоритма метода «BtnDown»

Рисунок 15 – Схема алгоритма метода «BtnUp»

Метод 7 – Конструктор разрабатываемого компонента.

Метод предназначен для создания объекта класса и инициализации полей.

Рисунок 16 – Схема алгоритма метода «Create»

Метод 8 – рисование кнопки.

Заголовок метода:

procedure Paint; override;

Метод предназначен для отрисовки кнопки.

Входных и выходных параметров нет.

Схема алгоритма представлена на рисунке 17.

Рисунок 17 – Схема алгоритма метода «Paint»

Метод 9 – действия при загрузке компонента.

Заголовок метода:

procedure Loaded; override;

В данном методе определены действия, выполняемые при загрузке компонента.

Входных и выходных параметров нет.

Схема алгоритма представлена на рисунке 18.

Рисунок 18 – Схема алгоритма для метода «Loaded»

Методы 10 – вывод изображений при соответствующих событиях мыши.

Заголовки методов:

procedure MouseEnter(var msg: TMessage); message CM_MOUSEENTER;

procedure MouseLeave(var msg: TMessage); message CM_MOUSELEAVE;

procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);override;

procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);override;

procedure MouseMove(Shift: TShiftState; X, Y: integer);override;

procedure DblClick;override;

procedure Click;override;

Данные методы переопределены в классе PicturedButton. Они реализуют вывод изображений в зависимости от события мыши.

Метод «MouseEnter» вызывается, когда курсор мыши попадает в область компонента. Входным параметром данной процедуры является сообщение CM_MOUSEENTER. Выходных параметров нет.

Схема алгоритма метода представлена на рисунке 19.

Рисунок 19 – Схема алгоритма процедуры «MouseEnter»

Метод «MouseLeave» вызывается, когда курсор мыши находится за пределами компонента. Входным параметром данной процедуры является сообщение CM_MOUSELEAVE. Выходных параметров нет.

Схема алгоритма метода представлена на рисунке 20.

Рисунок 20 – Схема алгоритма метода «MouseLeave»

Метод «MouseDown» вызывается при нажатии кнопки мыши. У процедуры имеются входные параметры. Параметр Button определяет, какая кнопка мыши была использована. Параметр Shift указывает, удерживалась ли при нажатии кнопки мыши модификаторная клавиша. Параметры X и Y задают позицию указателя при нажатии кнопки. Выходных параметров нет.

Схема алгоритма метода представлена на рисунке 21.

Рисунок 21 – Схема алгоритма метода «MouseDown»

Метод «MouseUp» при отпускании кнопки мыши. Параметры данной процедуры аналогичны параметрам предыдущей.

Схема алгоритма метода представлена на рисунке 22.

Рисунок 22 – Схема алгоритма метода «MouseUp»

Метод «MouseMove» вызывается при перемещении курсора мыши. У процедуры имеются входные параметры. Параметр Shift указывает, удерживалась ли при нажатии кнопки мыши модификаторная клавиша. Параметры X и Y задают позицию указателя. Выходных параметров нет.

Схема алгоритма метода представлена на рисунке 23.

Рисунок 23 – Схема алгоритма метода «MouseMove»

Метод «DblClick» вызывается при двойном щелчке кнопкой мыши Параметров у процедуры нет.

Схема алгоритма метода представлена на рисунке 24.

Рисунок 24 – Схема алгоритма метода «DblClick»

Метод «Click» вызывается при щелчке кнопкой мыши. Параметров у процедуры нет.

Схема алгоритма метода представлена на рисунке 25.

Рисунок 25 – Схема алгоритма метода «Click»

Методы 11 – удаление изображений из свойств «ClickImage», «MDblClickImage», «LeftMDownImage», «RightMDownImage», «MouseUpImage», «MouseMoveImage», «MouseEnterImage», «MouseLeaveImage».

Заголовки методов:

procedure DelClickImage;

procedure DelDblClickImage;

procedure DelLeftMDownImage;

procedure DelRightMDownImage;

procedure DelMouseUpImage;

procedure DelMouseMoveImage;

procedure DelMouseEnterImage;

procedure DelMouseLeaveImage;

Метод «DelClickImage» предназначен для удаления изображения из свойства «ClickImage». Схема алгоритма представлена на рисунке 26.

Рисунок 26 – Схема алгоритма метода «DelClickImage»

Метод «DelDblClickImage» предназначен для удаления изображения из свойства «MDblClickImage». Схема алгоритма представлена на рисунке 27.

Рисунок 27 – Схема алгоритма метода «DelDblClickImage»

Метод «DelLeftMDownImage» предназначен для удаления изображения из свойства «LeftMDownImage». Схема алгоритма представлена на рисунке 28.

Рисунок 28 – Схема алгоритма метода «DelLeftMDownImage»

Метод «DelRightMDownImage» предназначен для удаления изображения из свойства «RightMDownImage». Схема алгоритма представлена на рисунке 29.

Рисунок 29 – Схема алгоритма метода «DelRightMDownImage»

Метод «DelMouseUpImage» предназначен для удаления изображения из свойства «MouseUpImage». Схема алгоритма представлена на рисунке 30.

Рисунок 30 – Схема алгоритма метода «DelMouseUpImage»

Метод «DelMouseMoveImage» предназначен для удаления изображения из свойства «MouseMoveImage». Схема алгоритма представлена на рисунке 31.

Рисунок 31 – Схема алгоритма метода «DelMouseMoveImage»

Метод «DelMouseEnterImage» предназначен для удаления изображения из свойства «MouseEnterImage». Схема алгоритма представлена на рисунке 32.

Рисунок 32 – Схема алгоритма метода «DelMouseEnterImage»

Метод «DelMouseLeaveImage» предназначен для удаления изображения из свойства «MouseLeaveImage». Схема алгоритма представлена на рисунке 33.

Рисунок 33 – Схема алгоритма метода «DelMouseLeaveImage»

Компонент TPicturedButton представлен следующими файлами:

  • PicturedButton.pas – файл с текстом основного модуля;

  • Button_Pack.dpk – файл пакета компонента;

  • Button_Pack.res – файл ресурсов пакета компонента;

  • PicturedButton.dcu – файл с иконкой компонента;

  • Button_Pack.cfg – файл конфигурации компонента;

Логическая структура тестового приложения.

Тестирующая программа предоставляет следующие возможности:

  • Загрузка и удаление изображения для конкретного события мыши.

  • Задание режима вывода изображений.

  • Установка размера и расположения кнопки.

  • Задание текста надписи.

  • Настройка шрифта для текста надписи.

  • Задание цвета компонента.

  • Вызов справки.

  • Просмотр информации о программе.

  • Выход из программы.

Интерфейс программы.

При разработке интерфейса программы использовались следующие компоненты:

TEdit - для ввода текстовой информации,

TButton - для загрузки и удаления изображений, вызова диалога настройки параметров шрифта и для выхода из программы,

TLabel - для вывода информации,

TUpDown - для установки параметров тестируемого компонента,

TGroupBox - для распределения элементов управления по отдельным группам,

TComboBox - для выбора свойства,

TColorBox - для выбора цвета,

TRadioGroup - для выбора режима вывода изображений.

Для настройки параметров шрифта использовался компонент TFontDialog.

Загрузка изображений осуществляется с помощью компонента TOpenPictureDialog.

Главная форма программы содержит меню, в котором представлены основные действия пользователя. Для его создания использовался компонент TMainMenu. Пункт Файл содержит подпункты Загрузить (реализация загрузки изображений в свойство), Удалить (удаление изображения из свойства) и Выход (завершение работы программы). Пункт Шрифт содержит подпункт Настроить… (вызов диалога настройки параметров шрифта). Пункт Помощь содержит подпункты О программе (вывод информации о программе) и Справка (вызов справки по программе).

Главная форма разработанной программы представлена на рисунке 34.

Рисунок 34 – Основное окно тестирующей программы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]