Содержание:
Во многих программах возникает задача вывода изображения в Вашу форму. Чаще всего для этого применяется стандартный класс C++ Builder/ Delphi TImage. Однако, что делать если размеры размещенного на форме TImage и размеры изображения не совпадают? TImage имеет свойство Stretch (растягивание), при установке которого выполняется «вписывание» изображения в выделенную под объект TImage прямоугольную область. При этом пропорции полученного изображения могут быть потеряны, если размеры первоначального изображения не пропорциональны размерам области TImage. Идея предлагаемого метода такова: нужно менять размеры самого объекта TImage, таким образом чтобы они (размеры) подстроились под размеры исходного изображения. При этом сам TImage должен быть ограничен прямоугольной областью какого-либо объекта-контейнера, на котором он будет размещаться. Таким объектом может быть, например, TPanel. Таким образом, предлагаемый метод гарантирует, что после его применения к объекту типа TImage, TImage изменит свои размеры так, что станет пропорционален выводимому изображению, при этом не выйдет за пределы объекта-контейнера. А установленное свойство Stretch заполнит изображением всю область TImage, теперь уже пропорционально.
Содержание
Введение 2
1Анализ предметной области 3
1.1Постановка задачи 3
1.2Определение задач и подзадач, формализация задач 6
1.3Требования к разрабатываемым программным модулям 7
1.4Выбор методов решения задачи и средств разработки 8
1.4.1Выбор операционной системы 8
1.4.2Выбор языка программирования 9
1.4.3Выбор методов реализации разработанного алгоритма 11
1.4.3.1Обзор методов повторного использования кода 11
1.4.3.2Классы С++ 12
1.4.3.3Динамически подключаемые библиотеки 13
1.4.3.4Компоненты среды разработки С++ Builder/Delphi 15
1.4.3.5COM-объекты 17
2Разработка алгоритма решения задачи 22
3Программная реализация алгоритма 26
3.1Реализация алгоритма в виде класса на языке С++ 26
3.2Реализация алгоритма в виде динамически подключаемой библиотеки (DLL) 28
3.3Разработка тестового приложения, демонстрирующего использование динамически подключаемой библиотеки (DLL), реализующей алгоритм 34
3.4Реализация алгоритма в виде компонента интегрированной среды разработки С++ Builder 43
3.5Разработка тестового приложения, демонстрирующего использование компонента TSmartImage среды разработки С++ Builder. 50
3.6Разработка COM-объекта 53
3.7Разработка тестового приложения, демонстрирующего работу COM-объекта. 54
4Область применения разработанных программных модулей 56
5Руководство по использованию программных модулей 59
5.1Руководство по использованию динамически подключаемой библиотеки TCImage.dll 59
5.2Руководство по использованию компонента TSmartImage среды разработки С++ Builder. 62
5.3Руководство по использованию COM-объекта 63
6Тестирование и отладка программных модулей 64
6.1Технология отладки программы 64
6.2Инструментальные средства отладки 65
6.3Средства, методика и результаты тестирования 66
Заключение 70
Список использованных источников 71
Приложение 1. Подробный алгоритм расчета размеров области 72
Приложение 2. Реализация класса С++. 73
Приложение 3. Реализация динамически подключаемой библиотеки 76
Приложение 4. Реализация компонента интегрированной среды С++ Builder. 79
Приложение 5. Реализация COM-объекта.