Лабораторная работа 6. Применение графических компонентов
Большую часть графических компонентов можно найти на странице Additional палитры компонентов.
Компонент Shape представляется 6 вариантами эллипса и прямоугольника. Самыми важными свойствами компонента Shape являются Shape, Pen, Brush.
Свойство Shape определяет, какая именно фигура будет отображена – эллипс, окружность, прямоугольник, квадрат, прямоугольник с закруглёнными краями или квадрат с закруглёнными краями.
Комплексное свойство Pen с помощью своих подсвойств Color, Mode, Style, Width устанавливает параметры границы фигуры.
Задание 1.
Поместите на форму два компонента Shape.
Выберите их оба, присвойте их свойству Shape значение stEllipse.
Свойство Pen.Width установите в 16.
Затем свойству Pen.Style одного из компонентов присвойте значение psInsideFrame.
Свойство Brush определяет то, как будет заполнена внутренняя часть фигуры. Если его подсвойство Style имеет значение bsClear, внутренняя часть фигуры будет пустой, а если bsSolid – окажется заполненной цветом, определяемым значением свойства Brush.Color.
Задание 2. Создание произвольной фигуры.
Художественный набор (компонент PaintBox на странице компонентов System) позволяет нарисовать любую фигуру или комбинацию фигур любого цвета.
Поместите на новую форму художественный набор, придав ему очертание квадрата. Свойству Color придайте значение clWhite и создайте для него обработчик события OnPaint, используя следующий код.
WITH Sender AS TpaintBox, Canvas DO
BEGIN
Brush.Color:=Color;
Pen.Color:=Font.Color;
Polygon([Point(Width DIV 2,0),
Point(Width DIV 5, Height),
Point(Width, 2*( Height DIV 5)),
Point(0, 2*( Height DIV 5)),
Point(4*(Width DIV 5), Height)]);
END;
Запустите программу.
Вернитесь к обработчику события OnPaint и перед строкой, начинающейся со слова Polygon всавьте следующую строку :
SetPolyFillMode (Handle, Winding);
На ту же самую форму поместите ещё один художественный набор, ширина которого вдвое больше высоты. Создайте для него новую заготовку обработчика события OnPaint и замените пару Begin – End следующим кодом:
VAR
R:Trect;
N:Word;
CONST
Rainbow:ARRAY[0..4] OF Tcolor=(clRed,clYellow, clLime, clBlue, clFuchsia);
Begin
WITH Sender AS TpaintBox, Canvas DO
BEGIN
R:=ClientRect;
R.Bottom:=2*R.Bottom;
Pen.Width:=8;
Pen.Style:=psInsideFrame;
For N=0 TO 4 DO begin
Pen.Color:=Rainbow[N];
WITH R DO
Ellipse(left, top, right, bottom);
InflateRect(R, -8, -8);
END;
END;
End;
Данный код рисует радугу.
Задание 3. Управление цветом с помощью цветовой сетки.
На форме разместите фигуру значительного размера и установите её свойства следующим образом.
Свойство Значение
Shape stEllips
Pen.Width 8
На форму ниже фигуры поместите компонент ColorGrid (со страницы компонентов Samples) и установите его свойство GridOrdering в go8*2. Сделайте ширину цветовой сетки равной ширине фигуры, а высоту – такой, чтобы цветные блоки были квадратными. Установите свойство Backgroundindex в 15. В обработчик события OnChange компонента ColorGrid следующие строки:
WITH Sender AS TcolorGrid, Shape1 DO
BEGIN
Pen.Color:=ForegroundColor;
Brush.Color:=BackgroundColor;
END;
Запустите программу. Пощёлкайте левой и правой кнопками мыши на цветовой сетке.
Задание 4.
На новой форме разместите компонент Image, его свойство Stretch установите в True.
Свойству Align, чтобы заполнить пространство формы, присвойте значение alClient.
Озаглавьте форму Image Viewer и помесьтите на неё компонент OpenDialog со свойствами:
Свойство Значение
DefaultExt BMP
Options.ofhideReadonly True
Options.ofFileMustExist True
Title Open Image file
Дважды щёлкните на свойстве Filter компонента openDialog, чтобы вызвать список фильтров и создать фильтры с именами Bitmaps, Icon, Metafiles со значениями *.BMP, *.ICO, *.WMF соответственно.
Поместите на форму меню и создайте упрощённое меню File, содержащие только пункты Open и Exit.
В обработчик события OnClick пункта меню Exit поместите команду Close; в обработчик события OnClick пункта меню Open добавьте следующие строки:
WITH OpenDialog1 DO
If Execute THEN
BEGIN
Screen.Cursor:=crHourglass;
Try
WITH Image1.Picture DO
BEGIN
LoadFromFile(Filename);
WindowState:=wsNormal;
ClientWidth:=Width;
ClientHeight:=Height;
END;
Caption:=ExtractFilename(Filename);
Finally
Screen.Cursor:=crDefault;
End;
END;
Загрузите любое растровое изображение.
Задание 5. Создание строки состояния.
На новой форме разместите панель и установите её свойства:
Свойство Значение
Align alBottom
Alignment taLeftJustify
Beveliner bvLowered
Caption нет
Для панели создайте обработчик события OnClick, содержащий :
Panel1.Caption:=Application.Hint;
Перейдите на страницу Events окна инспектора объектов и отмените связь панели с этим обработчиком события. Используя возможности поиска и замены редактора. Замените все имеющиеся фрагменты Panel1Click на DoShowHint.
В обработчик события OnCreate формы вставьте строку:
Application.OnHint:=DoShowHint;
Разместите на форме любые видимые компоненты. Свойству Hint каждого из них присвойте в качестве значения краткую описывающую строку.
Добавьте на форму меню и откройте окно Menu Designer (Конструктор меню).
Используйте один-два шаблона и создайте краткую подсказку для каждого пункта меню.
Запустите программу и поперемещайте мышь.
- 1. Теоретические основы объектно – ориентированного программирования 5
- 2. Использование системы программирования Delphi для создания Windows-приложений 9
- 3. Лабораторный практикум 27
- Введение
- 1. Теоретические основы объектно – ориентированного программирования
- 1.1.Объектная модель и ее элементы.
- 1.2.Основные понятия объектно-ориентированного подхода - объект и класс.
- 1.3.Методы построения классов.
- 2. Использование системы программирования Delphi для создания Windows-приложений
- 2.1. Интерфейс интегрированной среды разработки Delphi
- 2.2. Синтаксические правила языка Object Pascal
- 2.3. Создание и структура пользовательских приложений в среде Delphi
- 2.4. Структура модуля (*.Pas)
- 2.5. Создание формы и написание откликов на события
- 1) Компоновка формы и задание свойств компонентов
- 2) Написание отклика на событие
- 2.6. Компиляция и исполнение программы
- 2.7. Ввод и вывод данных. Функции преобразования типов данных
- 3. Лабораторный практикум Лабораторная работа 1. Разработка приложения Калькулятор
- Лабораторная работа 2. Использование курсоров в приложениях Windows.
- Лабораторная работа 4. Создание простого текстового редактора.
- Лабораторная работа 5. Рисование мышью в форме
- Лабораторная работа 6. Применение графических компонентов
- Лабораторная работа 7.Создание числовых изображений
- Лабораторная работа 8. Создание текстурных заливок
- Лабораторная работа 9. Поддержка справочной системы. Создание всплывающих подсказок.
- Лабораторная работа 10.Создание видеопроигрывателя
- Лабораторная работа 12.Создание браузера
- Лабораторная работа 13. Работа с внешним файлом.
- Лабораторная работа 14. Работа с базами данных.
- Лабораторная работа 15. Создание многооконных приложений.
- Литература Основная литература
- Дополнительная литература