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

procedure SetSize(w,h: integer);

Устанавливает размеры клиентской части графического окна в пикселах

procedure SetPos(l,t: integer);

Устанавливает отступ графического окна от левого верхнего края экрана в пикселах

procedure Init(Left,Top,Width,Height: integer; BackColor: Color := clWhite);

Устанавливает положение, размеры и цвет графического окна

procedure Save(fname: string);

Сохраняет содержимое графического окна в файл с именем fname

procedure Load(fname: string);

Восстанавливает содержимое графического окна из файла с именем fname

procedure Fill(fname: string);

Заполняет содержимое графического окна обоями из файла с именем fname

procedure Close;

Закрывает графическое окно и завершает приложение

procedure Minimize;

Сворачивает графическое окно

procedure Maximize;

Максимизирует графическое окно

procedure Normalize;

Возвращает графическое окно к нормальному размеру

procedure CenterOnScreen;

Центрирует графическое окно по центру экрана

function Center: Point;

Возвращает центр графического окна

Кроме того, можно изменять свойства графического окна, используя соответствующие процедуры и функции.

Подпрограммы для работы с координатами графического окна

Доступ к свойствам координат графического окна можно осуществлять как в процедурном, так и в объектно-ориентированном стиле.

Процедуры и функции для изменения системы координат окна приведены ниже:

procedure SetCoordinateOrigin(x0,y0: integer);

Устанавливает начало координат в точку (x0,y0)

procedure SetCoordinateScale(sx,sy: real);

Устанавливает масштаб системы координат

procedure SetCoordinateAngle(a: real);

Устанавливает поворот системы координат

Можно также изменять свойства системы координат графического окна через объект Coordinate.

Класс GraphABCCoordinate графического окна

Объект текущей системы координат возвращается функцией Coordinate и имеет тип GraphABCCoordinate:

function Coordinate: GraphABCCoordinate;

Класс GraphABCCoordinate представляет тип системы координат для графического окна.

Свойства класса GraphABCCoordinate

property OriginX: integer;

X-координата начала координат относительно левого верхнего угла окна

property OriginY: integer;

Y-координата начала координат относительно левого верхнего угла окна

property Origin: Point;

Координаты начала координат относительно левого верхнего угла окна

property Angle: real;

Угол поворота системы координат

property ScaleX: real;

Масштаб системы координат по оси X

property ScaleY: real;

Масштаб системы координат по оси Y

property Scale: real;

Масштаб системы координат по обоим осям

property Matrix: System.Drawing.Drawing2D.Matrix;

Матрица 3x3 преобразований координат

Методы класса GraphABCCoordinate

procedure SetTransform(x0,y0,angle,sx,sy: real);

Устанавливает параметры системы координат

procedure SetOrigin(x0,y0: integer);

Устанавливает начало системы координат

procedure SetScale(sx,sy: real);

Устанавливает масштаб системы координат

procedure SetScale(scale: real);

Устанавливает масштаб системы координат

procedure SetMathematic;

Устанавливает правую систему координат (ось OY направлена вверх, ось OX - вправо)

procedure SetStandard;

Устанавливает левую систему координат (ось OY направлена вниз, ось OX - вправо)

Кроме того, можно изменять свойства системы координат, используя соответствующие процедуры и функции.

Подпрограммы блокировки рисования

procedure Redraw;

Перерисовывает содержимое графического окна. Вызывается в паре с LockDrawing

procedure LockDrawing;

Блокирует рисование на графическом окне. Перерисовка графического окна выполняется с помощью Redraw

procedure UnlockDrawing;

Снимает блокировку рисования на графическом окне и осуществляет его перерисовку

Блокировка вывода в графическое окно LockDrawing с последующим вызовом Redraw используется для простейшего создания анимации без мерцания.

Пример. Анимация без мерцания

Подпрограммы режимов рисования

procedure SetSmoothing(sm: boolean);

Устанавливает режим сглаживания

procedure SetSmoothingOn;

Включает режим сглаживания

procedure SetSmoothingOff;

Выключает режим сглаживания

function SmoothingIsOn: boolean;

Возвращает True, если режим сглаживания установлен

procedure SetCoordinateOrigin(x0,y0: integer);

Устанавливает начало координат в точку (x0,y0)

События модуля GraphABC

Графическая программа продолжает выполняться даже после того как выполнены все операторы основной программы. Графическое окно реагирует на события мыши, клавиатуры, событие изменения размеров окна и событие закрытия окна. Данные события определены в модуле GraphABC и представляют собой процедурные переменные:

OnMouseDown: procedure (x,y,mousebutton: integer);

Событие нажатия на кнопку мыши. (x,y) - координаты курсора мыши в момент наступления события, mousebutton = 1, если нажата левая кнопка мыши, и 2, если нажата правая кнопка мыши

OnMouseUp: procedure (x,y,mousebutton: integer);

Событие отжатия кнопки мыши. (x,y) - координаты курсора мыши в момент наступления события, mousebutton = 1, если отжата левая кнопка мыши, и 2, если отжата правая кнопка мыши

OnMouseMove: procedure (x,y,mousebutton: integer);

Событие перемещения мыши. (x,y) - координаты курсора мыши в момент наступления события, mousebutton = 0, если кнопка мыши не нажата, 1, если нажата левая кнопка мыши, и 2, если нажата правая кнопка мыши.