Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
Возвращает высоту графического компонента в пикселах (по умолчанию совпадает с WindowHeight)
function GraphBoxLeft: integer;
Возвращает отступ графического компонента от левого края окна в пикселах
function GraphBoxTop: integer;
Возвращает отступ графического компонента от верхнего края окна в пикселах
function ScreenWidth: integer;
Возвращает ширину экрана в пикселях
function ScreenHeight: integer;
Возвращает высоту экрана в пикселях
Можно также изменять свойства графического окна через объект Window.
Класс GraphABCWindow графического окна
Класс GraphABCWindow представляет собой графическое окно. Функция
function Window: GraphABCWindow;
возвращает объект текущего графического окна.
Свойства класса GraphABCWindowproperty Left: integer;
Отступ графического окна от левого края экрана в пикселах
property Top: integer;
Отступ графического окна от верхнего края экрана в пикселах
property Width: integer;
Ширина клиентской части графического окна в пикселах
property Height: integer;
Высота клиентской части графического окна в пикселах
property Caption: string;
Заголовок графического окна
property Title: string;
Заголовок графического окна
property IsFixedSize: boolean;
Имеет ли графическое окно фиксированный размер
Методы класса GraphABCWindowprocedure Clear;
Очищает графическое окно белым цветом
procedure Clear(c: Color);
Очищает графическое окно цветом c
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 представляет тип системы координат для графического окна.
Свойства класса GraphABCCoordinateproperty 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 преобразований координат
Методы класса GraphABCCoordinateprocedure 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, если нажата правая кнопка мыши.
OnKeyDown: procedure (key: integer);
Событие нажатия клавиши. key - виртуальный код нажатой клавиши
OnKeyUp: procedure (key: integer);
Событие отжатия клавиши. key - виртуальный код отжатой клавиши
OnKeyPress: procedure (ch: char);
Событие нажатия символьной клавиши. ch - символ, генерируемый нажатой символьной клавишей
OnResize: procedure;
Событие изменения размера графического окна
OnClose: procedure;
Событие закрытия графического окна
Если переменной-событию присвоена некоторая процедура, она называется обработчиком данного события и автоматически вызывается при наступлении указанного события.