Выбрать главу

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