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. Он имеет свойство прозрачности, которое можно включать/выключать, а также возможность непосредственного рисования на себе всех графических примитивов.
|
constructor Create(w,h: integer); Создает рисунок размера w на h пикселей |
|
constructor Create(fname: string); Создает рисунок из файла с именем fname |
|
constructor Create(r: System.Drawing.Rectangle); Создает рисунок из прямоугольника r графического окна |
|
property Width: integer; Ширина рисунка в пикселах |
|
property Height: integer; Высота рисунка в пикселах |
|
property Transparent: boolean; Прозрачность рисунка; прозрачный цвет задается свойством TransparentColor |
|
property TransparentColor: Color; Прозрачный цвет рисунка. Должна быть установлена прозрачность Transparent = True |
|
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 |