Лабораторная работа №8. Графические компоненты

Цель работы: Познакомиться с возможностями Delphi по созданию визуальных эффектов в приложениях.

Основные понятия: При создании приложений используют различные визуальные эффекты, такие как рамки, фаски и элементарные графические фигуры. В Delphi для работы с такими элементами используются компоненты Shape, Bevel и Image, расположенные на странице Additional Палитры компо­нентов.

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

∙  stCircle – круг;

∙  stEllipse – эллипс;

∙  stRectangle – прямоугольник;

∙  stRoundRect – прямоугольник со скругленными углами;

∙  stRoundSquare – квадрат со скругленными углами;

∙  stSquare – квадрат.

Помимо этого за отображение отвечают еще свойства Brush и Pen.

Свойство Brush отвечает за закраску фигуры и имеет два свойства:

∙  Color – цвет заливки;

∙  Style – способ заливки, может принимать следующие значения:

bsSolid (сплошная заливка)

bsClear (без заливки)

bsHorizontal

bsVertical

bsFDiagonal

bsBDiagonal

bsCross

bsDiagCross

Свойство Pen отвечает за обрамления фигуры и имеет четыре свойства:

∙  Color – цвет обрамления;

∙  Mode – режим отображения (способ взаимодействия цвета линии с цветом холста), может принимать следующие значения:

НЕ нашли? Не то? Что вы ищете?

pmBlack – всегда черный;

pmWhite – всегда белый;

pmNop – цвет линии не взаимодействует с цветом холста;

pmNot – цвет, инверсный цвету фона холста;

pmCopy – цвет линии определяется в свойстве Color;

pmNotCopy – цвет, инверсный цвету, определённому в свойстве Color;

pmMergePenNot – цвет образуется путём объединения цвета линии и инверсного цвета фона холста;

pmMaskPenNot – цвет образуется путём объединения цветов, общих для цвета линии и инверсного цвета фона холста;

pmMergeNotPen – цвет образуется путём объединения цвета фона холста и инверсного цвета линии;

pmMaskNotPen – цвет образуется путём объединения цветов, общих для цвета фона холста и инверсного цвета линии;

pmMerge – цвет образуется путём объединения цвета линии и цвета фона холста;

pmNotMerge – цвет, инверсный значению pmMerge;

pmMask – цвет образуется путём объединения цветов, общих для цвета фона холста и цвета линии;

pmNotMask – цвет, инверсный значению pmMask;

pmXor – цвет образуется путём объединения несовпадающих цветов линии и фона холста;

pmNotXor – цвет, инверсный значению pmXor;

∙  Style – стиль линии, может принимать следующие значения:

psSolid

psDash

psDot

psDashDot

psDashDotDot

psClear

без линии;

psInsideFrame

тo же, что и psSolid, но если толщина линии больше 1 может быть отображена размытой.

∙  Width – толщина линии.

Компонент Bevel предназначен для визуального разделения элементов на экране и представляет собой трёхмерную рамку. Внутренняя область компонента прозрачна.

Внешний вид компонента Bevel задаётся свойством Shape, которое может принимать значения:

∙  bsBox – трёхмерный прямоугольник;

∙  bsFrame – рамка;

∙  bsTopLine – линия сверху;

∙  bsBottomLine – линия снизу;

∙  bsLeftLine – линия слева;

∙  bsRightLine – линия справа;

∙  bsSpacer – невидимая область.

Стиль фаски определяется свойством Style, которое может принимать два значения:

∙  bsLowered – фаска утоплена;

∙  bsRaised – фаска приподнята.

Компонент Image предназначен для отображения изображения определённого графического формата. Он является контейнером для графического объекта и может содержать растровое изображение форматов BMP, ICO или WMF. Основными свойства компонента Image являются:

∙  Picture – определяет изображение, размещаемое внутри объекта;

∙  Height – высота изображения;

∙  Width – ширину изображения;

∙  AutoSize – автоматическое приведение размера компонента Image к размеру изображения;

∙  Stretch – автоматическое приведение размера изображения к размеру компонента Image;

∙  Proportional – соблюдение пропорций изображения при приведении размеров изображения к размерам компонента Image;

∙  Center – определяет, центруется изображение в нутрии компонента Image или нет;

∙  Transparent – позволяет сделать изображение прозрачным.

Порядок выполнения работы

1. Запустите Delphi. Создайте новый проект.

2. Назовите форму MainForm с заголовком Главная. Для формы задайте:

·  размер – 800х600;

·  минимальный размер – 400х300;

·  максимальный размер – 1000х800.

3. Cохраните проект в папку D:\Users\...|Lab8\....

4. На форме создайте:

·  панель высотой 50, сделайте, чтобы она выравнивалась по верхнему краю;

·  разделитель высотой 10, сделайте, чтобы он выравнивался по верхнему краю;

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

5. Создайте главное меню с пунктами Компоненты, О программе и Выход. В меню Компоненты создайте подпункты Фигура, Заливка, Линия, Фаска.

6. На первой панели создайте панель инструментов, содержащую четыре кнопки, разделитель, кнопку, разделитель и ещё одну кнопку (в соответствии с пунктами главного меню). Сделайте, чтобы кнопки были с рисунками.

7. Сделайте так, чтобы при выборе меню Выход и соответствующей кнопки на панели инструментов приложение закрывалось. Для меню Выход задайте комбинацию клавиш Ctrl+E.

8. На второй панели создайте:

·  в центре компонент Bevel, размеров 450х400. Назовите его MainBevel.

·  поверх компонента Bevel компонент Shape, размером 350х300. Назовите его MainShape.

9. Создайте вторую форму:

·  назовите форму ShapeForm с заголовком Фигура;

·  сделайте форму размером 600х600.

10. На форме Фигура создайте:

·  шесть элементов Shape размером 90х60 и сделайте так, что бы они имели все возможные варианты фигур;

·  компонент RadioGroup с заголовком Вид фигуры и названием всех изображенных фигур;

·  кнопку Принять, при нажатии на неё фигура на форме Главная должна принять выбранный в списке вид;

·  кнопку Закрыть. при нажатии на неё форма должна закрываться;

·  параметр, отвечающий за вид фигуры, имеет тип данных TShapeType.

11. Создайте третью форму:

·  назовите форму BrushForm с заголовком Заливка;

·  сделайте форму размером 600х600.

12. На форме Заливка создайте:

·  восемь элементов Shape размером 60х40 и сделайте так, что бы они имели все возможные варианты заливки фигуры;

·  компонент RadioGroup с заголовком Заливка фигуры и названием всех видов заливки;

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

·  надпись Цвет заливки;

·  комбинированный список с раскрывающим списком, содержащий название шести цветов. По умолчанию должен быть выбран первый элемент списка;

·  графическую кнопку с предопределённым видом Ok. При нажатии кнопки Ok цвет заливки фигуры на форме Главная должен принять выбранный из списка;

·  кнопку Закрыть, при нажатии на неё форма должна закрываться;

·  параметр, отвечающий за заливку фигуры, имеет тип данных TBrushStyle.

13. Создайте четвёртую форму:

·  назовите форму LineForm с заголовком Линия;

·  сделайте форму размером 600х600.

14. На форме Линия разместите:

·  семь элементов Shape размером 80х30 и сделайте так, что бы они имели все возможные типы линий;

·  компонент RadioGroup с заголовком Тип линии и названием всех типов линий;

·  кнопку Принять, при нажатии на неё линии фигуры на форме Главная должны принять выбранный в списке вид;

·  надпись Цвет линии;

·  комбинированный список с раскрывающим списком, содержащий название шести цветов. По умолчанию должен быть выбран первый элемент списка;

·  кнопку Ok. При нажатии кнопки Ok цвет линии фигуры на форме Главная должен принять выбранный из списка;

·  кнопку Закрыть, при нажатии на неё форма должна закрываться;

·  параметр, отвечающий за тип линии фигуры, имеет тип данных TPenStyle.

15. Создайте пятую форму:

·  назовите форму BevelForm с заголовком Фаски;

·  сделайте форму размером 600х600.

16. На форме Фаска создайте:

·  панель высотой 50, сделайте, чтобы она выравнивалась по нижнему краю;

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

·  многострочный блокнот PageControl, сделайте, чтобы он занимал всю оставшуюся площадь формы. Создайте в многострочном блокноте две вкладки Тип и Стиль;

·  на вкладке Тип компонент RadioGroup с заголовком Тип фаски и названием всех видов фасок, кнопку Применить, при нажатии на которую тип фаски для рисунка на форме Главная соответствующе менялся;

·  на вкладке Стиль компонент RadioGroup с заголовком Стиль фаски и названиями стилей фаски, кнопку Применить, при нажатии на которую стиль фаски для рисунка на форме Главная соответствующе менялся;

·  параметр, отвечающий за тип фаски, имеет тип данных TBevelShape, а за стиль фаски – TBevelStyle;

·  на нижней панели графическую кнопку с предопределённым видом Close.

17. В редакторе Paint создайте изображение размером 150х100, сохраните его в папку с проектом.

18. Создайте шестую форму:

·  назовите форму AboutForm с заголовком О программе;

·  сделайте форму размером 400х300;

·  измените цвет формы.

19. На форме О программе:

·  создайте компонент Imega, сделайте, чтобы он занимал половина формы;

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

·  на оставшейся площади формы создайте надписи, содержащие своё Ф. И.О., группу, № лабораторной работы, год. Измените размер, цвет и шрифт надписей;

·  создайте кнопку Ok. Запрограммируйте, чтобы при нажатии кнопки форма закрывалась.

20. Запрограммируйте соответствующие пункты меню и кнопки панели инструментов, чтобы при их выборе открывались соответствующие формы.

21. Для пунктов меню и кнопок создайте подсказки.

22. Сохраните и запустите проект на выполнение.

23. Закройте Delphi.