Лабораторная работа №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.


