bhDarkVertical
bhDarkHorizontal
bhDashedDownwardDiagonal
bhDashedUpwardDiagonal
bhDashedHorizontal
bhDashedVertical
bhSmallConfetti
bhLargeConfetti
bhZigZag
bhWave
bhDiagonalBrick
bhHorizontalBrick
bhWeave
bhPlaid
bhDivot
bhDottedGrid
bhDottedDiamond
bhShingle
bhTrellis
bhSphere
bhSmallGrid
bhSmallCheckerBoard
bhLargeCheckerBoard
bhOutlinedDiamond
bhSolidDiamond
bhMin
bhLargeGrid
bhMax
Подпрограммы для работы со шрифтом
Вывод текста осуществляется текущим шрифтом. Доступ к свойствам текущего шрифта можно осуществлять как в процедурном, так и в объектно-ориентированном стиле.
Процедуры и функции для доступа к свойствам шрифта сгруппированы парами: если Prop - имя свойства пера, то функция PenProp возвращает значение этого свойства, а процедура SetPenProp(p) устанавливает это свойство:
procedure SetFontSize(size: integer);
Устанавливает размер текущего шрифта в пунктах
function FontSize: integer;
Возвращает размер текущего шрифта в пунктах
procedure SetFontName(name: string);
Устанавливает имя текущего шрифта
function FontName: string;
Возвращает имя текущего шрифта
procedure SetFontColor(c: Color);
Устанавливает цвет текущего шрифта
function FontColor: Color;
Возвращает цвет текущего шрифта
procedure SetFontStyle(fs: integer);
Устанавливает стиль текущего шрифта
function FontStyle: integer;
Возвращает стиль текущего шрифта
Можно также изменять свойства текущего пера через объект Font.
Кроме того, для определения ширины и высоты строки при текущих настройках шрифта используются следующие функции:
function TextWidth(s: string): integer;
Возвращает ширину строки s в пикселях при текущих настройках шрифта
function TextHeight(s: string): integer;
Возвращает высоту строки s в пикселях при текущих настройках шрифта
Текущий шрифт Font
Объект текущего шрифта возвращается функцией Font и имеет тип GraphABCFont:
function Font: GraphABCFont;
Класс GraphABCFont имеет следующий интерфейс: Кроме этого, можно изменять свойства текущего пера через объект Font.
type
GraphABCFont = class
property NETFont: System.Drawing.Font;
property Color: GraphABC.Color;
property Style: integer;
property Size: integer;
property Name: string;
end;
Свойства класса GraphABCFont описаны в следующей таблице:
property NETFont: System.Drawing.Font;
Текущий шрифт .NET
property Color: GraphABC.Color;
Цвет шрифта
property Style: FontStyleType;
Стиль шрифта
property Size: integer;
Размер шрифта в пунктах
property Name: string;
Наименование шрифта
Кроме этого, можно изменять свойства текущего шрифта, используя соответствующие процедуры и функции.
Стили шрифта
Стиль шрифта задается перечислимым типом FontStyleType, который содержит следующие константы:
fsNormal – обычный;
fsBold – жирный;
fsItalic – наклонный;
fsBoldItalic – жирный наклонный;
fsUnderline – подчеркнутый;
fsBoldUnderline – жирный подчеркнутый;
fsItalicUnderline – наклонный подчеркнутый;
fsBoldItalicUnderline – жирный наклонный подчеркнутый.
Класс Picture графического рисунка
Класс Picture представляет собой графический рисунок модуля GraphABC и является надстройкой над типом System.Drawing.Bitmap. Он имеет свойство прозрачности, которое можно включать/выключать, а также возможность непосредственного рисования на себе всех графических примитивов.
Конструкторы класса Picture
constructor Create(w,h: integer);
Создает рисунок размера w на h пикселей
constructor Create(fname: string);
Создает рисунок из файла с именем fname
constructor Create(r: System.Drawing.Rectangle);
Создает рисунок из прямоугольника r графического окна
Свойства класса Picture
property Width: integer;
Ширина рисунка в пикселах
property Height: integer;
Высота рисунка в пикселах
property Transparent: boolean;
Прозрачность рисунка; прозрачный цвет задается свойством TransparentColor
property TransparentColor: Color;
Прозрачный цвет рисунка. Должна быть установлена прозрачность Transparent = True
Методы класса Picture
procedure Load(fname: string);
Загружает рисунок из файла с именем fname
procedure Save(fname: string);
Сохраняет рисунок в файл с именем fname
procedure SetSize(w,h: integer);
Устанавливает размер рисунка w на h пикселей
function Intersect(p: Picture): boolean;
Возвращает True, если изображение данного рисунка пересекается с изображением рисунка p, и False в противном случае. Для проверки пересечения оба объекта рисуются на белом фоне, и прямоугольник пересечения попиксельно проверяется на пересечение. К сожалению, при таком алгоритме любые белые пиксели считаются не принадлежащими объекту. Поэтому для корректной работы этого метода не следует использовать белый цвет для внутренности объекта.
procedure Draw(x,y: integer);
Выводит рисунок в позиции (x,y)
procedure Draw(x,y: integer; g: Graphics);
Выводит рисунок в позиции (x,y) на поверхность рисования g
procedure Draw(x,y,w,h: integer);
Выводит рисунок в позиции (x,y), масштабируя его к размеру (w,h)
procedure Draw(x,y,w,h: integer; g: Graphics);
Выводит рисунок в позиции (x,y), масштабируя его к размеру (w,h), на поверхность рисования g
procedure Draw(x,y: integer; r: System.Drawing.Rectangle); // r - part of Picture
Выводит часть рисунка, заключенную в прямоугольнике r, в позиции (x,y)
procedure Draw(x,y: integer; r: System.Drawing.Rectangle; g: Graphics);
Выводит часть рисунка, заключенную в прямоугольнике r, в позиции (x,y) на поверхность рисования g
procedure Draw(x,y,w,h: integer; r: System.Drawing.Rectangle); // r - part of Picture
Выводит часть рисунка, заключенную в прямоугольнике r, в позиции (x,y), масштабируя его к размеру (w,h)
procedure Draw(x,y,w,h: integer; r: System.Drawing.Rectangle; g: Graphics);
Выводит часть рисунка, заключенную в прямоугольнике r, в позиции (x,y), масштабируя его к размеру (w,h), на поверхность рисования g
procedure CopyRect(dst: System.Drawing.Rectangle; p: Picture; src: System.Drawing.Rectangle);
Копирует прямоугольник src рисунка p в прямоугольник dst текущего рисунка
procedure CopyRect(dst: System.Drawing.Rectangle; bmp: Bitmap; src: System.Drawing.Rectangle);
Копирует прямоугольник src битового образа bmp в прямоугольник dst текущего рисунка
procedure FlipHorizontal;
Зеркально отображает рисунок относительно горизонтальной оси симметрии
procedure FlipVertical;
Зеркально отображает рисунок относительно вертикальной оси симметрии
procedure SetPixel(x,y: integer; c: Color);
Закрашивает пиксел (x,y) рисунка цветом c
procedure PutPixel(x,y: integer; c: Color);
Закрашивает пиксел (x,y) рисунка цветом c
function GetPixel(x,y: integer): Color;
Возвращает цвет пиксела (x,y) рисунка
procedure Line(x1,y1,x2,y2: integer);
Выводит на рисунке отрезок от точки (x1,y1) до точки (x2,y2)
procedure Line(x1,y1,x2,y2: integer; c: Color);
Выводит на рисунке отрезок от точки (x1,y1) до точки (x2,y2) цветом c
procedure FillCircle(x,y,r: integer);