Графические средства Delphi

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

Если у компонента канва (свойство типа TCanva) отсутствует, то на его поверхности рисовать нельзя. На поверхности компонентов, имеющих канву, можно печатать тексты, рисовать пером, красить кистью и отображать картинки.

Канва предоставляет «холст» (контекст графического устройства GDI), инструменты для рисования (перо, кисть, шрифт), а так же набор функций по изображению рисунков и типовых геометрических фигур типа эллипса, линии и т.п. Канвой обладают такие компоненты, как форма (TForm), наследники класса TgraphicControl – метка (TLabel), панель для рисования (TPaintBox) и др.

Шрифт инкапсулируется классом TFont. В нём задаются только горизонтальные шрифты (для других вариантов нужно непосредственно применять API-функции Windows). Основные свойства TFont:

Style – особенности начертания шрифта: жирный (fsBold), курсив (fsItalic), подчёркнутый (fsUnderLine), перечёркнутый (fsStrikeOut). Каждый из этих вариантов совместим с другим, то есть шрифт может быть одновременно и жирным, и подчёркнутым, и т.д.

Color – задаёт любой из допустимых в системе цветов в интервале TColor = - (COLOR_ENDCOLORS+1)..$2FFFFFF. Для прямого определения номера цвета по его составляющим красного, зелёного и синего компонентов используется функция RGB (R, G, B). Интенсивности R, G и B задаются числами в интервале 0..255. Пример: Color:= RGB (0, 127, 255). Для 16 стандартных цветов используются константы с префиксом cl. Например константа clBlack определяет чёрный цвет.

Pitch – способ установки ширины знаков шрифта: моно-ширинный (fpFixed), с переменной шириной (fpVariable), когда на знак «i» выделяется меньшая ширина, чем на знак «w», и по определённому начертанию шрифта (fpDefault).

Height – высота шрифта в пикселях.

Handle – дескриптор шрифта.

PixelsPerInch – число точек на дюйм в контексте экрана. Изменять это свойство не рекомендуется, чтобы не искажать изображение.

Size – размер шрифта в пунктах, связанный с PixelsPerInch: Size=Height*72/PixelsPerInch.

По умолчанию шрифт устанавливается системным (в частности, чёрного цвета).

Перо (класс TPen) задаёт свойства вычерчиваемых линий с помощью следующих свойств:

Color – цвет пера (аналогично цвету шрифта).

Mode – одна из 16 стандартных операций Windows для взаимодействия пера с поверхностью. Обычно задается константой с префиксом pm. Например константа pmMerge задает режим суммирования цветов пера и экрана.

Style – один из 7 стандартных для Windows стилей изображения линии. Задается константой с префиксом ps. Например константа psSolid задает сплошную линию.

Width – толщина пера в пикселях.

Handle – дескриптор пера.

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

Кисть (класс TBrush) задаёт способ закраски замкнутых фигур с помощью следующих свойств:

Color – цвет кисти.

Style – задаёт один из 8 стилей кисти. Определяется константой с префиксом bs. Например константа bsSolid задаёт сплошную закраску.

BitMap – задаваемая программистом битовая карта для закраски поверхности определённым орнаментом. Если это свойство задано, то Color и Style игнорируются.

Handle – дескриптор кисти.

По умолчанию кисть имеет белый цвет при сплошной закраске.

Канва (класс TCanvas) для рисования включает в себя шрифт (свойство Font), перо (свойство TPen), кисть (свойство TBrush) и дискриптор (свойство Handle). На поверхности канвы можно рисовать любым из следующих способов:

1. Рисовать сложные графические изображения по отдельным точкам с помощью свойства Pixels [X, Y: Integer]: TColor.

Пример нанесения красной точки в позиции (5, 5):

Pixelsх[5,5]:= RGB(255, 0, 0).

2. Помещать готовые графические изображения, задаваемые полем Graphic.

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

Для «сбрасывания» текущих установок шрифта, пера и кисти (установки их значений по умолчанию) используется метод Refresh.

При изменении канвы (то есть при любом рисовании) возбуждаются события OnChange и OnChanging (соответственно до начала изменений и по их завершению).

Рассмотрим некоторые часто используемые методы для рисования и вывода текстов на поверхность канвы:

BrushCopy (const Dest: TRect; BitMap: TBitMap; const Sourse: TRect; Color: TColor); - копирование прямоугольника Sourse из битового изображения BitMap в прямоугольник Dest канвы с изменением цвета Color на цвет кисти Brush.Color. Для рисования «прозрачной» картины цвет кисти фона заменяется на цвет битового изображения, являющийся в нём фоновым или наиболее частым.

CopyRect (const Dest: TRect; Canvas: TCanvas; const Sourse: TRect); - копирование прямоугольника Sourse из канвы в прямоугольник Dest в области самого объекта.

Drow (X, Y: Integer; Graphic: TGraphic); - отрисовка графического объекта Graphic с заданными координатами его левого верхнего угла.

Polygon (const Points: array of TPoint); - отрисовка многоугольника с вершинами в указанных точках.

StretchDraw (const Rect: TRect; Graphic: TGraphic); - отрисовка в прямоугольнике Rect объекта Graphic с его масштабированием к размеру прямоугольника Rect.

TextOut (X, Y: Integer; const Text: String); - вывод текста Text с заданными координатами его верхнего левого угла (X,Y).

31.3. Проектирование интерфейса с пользователем: компоненты стандартных диалогов

Для создания стандартных диалоговых окон в приложениях Windows применяется ряд стандартных программных компонентов. В Delphi эти компоненты находятся на странице Dialogs и располагаются в библиотеке COMMDLG.dll

Выделяют 10 основных видов диалогов:

OpenDialog – выбор имени файла, предназначенного для чтения.

SaveDialog – выбор имени файла, предназначенного для записи.

OpenPictureDialog – выбор имени файла, для чтения графического файла.

SavePictureDialog – выбор имени файла, для записи графического файла.

FontDialog – выбор одного из установленных в системе шрифтов.

ColorDialog – выбор одного из допустимых в системе цветов.

PrintDialog – выбор принтера для печати документа.

PrintSetupDialog – настройка параметров вывода на принтер.

FindDialog – подготовка к поиску нужного фрагмента текста.

ReplaceDialog – замена найденного текста другими.

Последовательность использования всех указанных диалогов одинакова и состоит из трех этапов:

1.Настройка параметров диалога в свойстве Options (иногда и в других свойствах).

2. Вызов функции Execute для выдачи диалогового окна. Функция возвращает значение True или False в зависимости от того, подтвердил ли пользователь выбранную настройку или нет.

3. Чтение и использование заказанных значений в их свойстве (при положительном ответе).



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: