
- •Функции для работы с цветом
- •Графические примитивы
- •Цветовые константы
- •Подпрограммы для работы с пером
- •Текущее перо Pen
- •Текущая графическая кисть Brush
- •Подпрограммы для работы со шрифтом
- •Текущий шрифт Font
- •Стили шрифта
- •Класс Picture графического рисунка
- •Подпрограммы для работы с графическим окном
- •Класс GraphAbcWindow графического окна
- •Подпрограммы для работы с координатами графического окна
- •Можно также изменять свойства системы координат графического окна через объект Coordinate. Класс GraphAbcWindow графического окна
- •Виртуальные коды клавиш
Можно также изменять свойства системы координат графического окна через объект Coordinate. Класс GraphAbcWindow графического окна
Класс GraphABCWindow представляет собой графическое окно. Функция
function Window: GraphABCWindow;
возвращает объект текущего графического окна.
|
Свойства класса GraphABCWindow |
property Left: integer; Отступ графического окна от левого края экрана в пикселах |
property Top: integer; Отступ графического окна от верхнего края экрана в пикселах |
property Width: integer; Ширина клиентской части графического окна в пикселах |
property Height: integer; Высота клиентской части графического окна в пикселах |
property Caption: string; Заголовок графического окна |
property Title: string; Заголовок графического окна |
property IsFixedSize: boolean; Имеет ли графическое окно фиксированный размер |
|
Методы класса GraphABCWindow |
procedure 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 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; Событие закрытия графического окна |
Если переменной-событию присвоена некоторая процедура, она называется обработчиком данного события и автоматически вызывается при наступлении указанного события.
Параметры x и y в обработчиках OnMouseDown, OnMouseUp и OnMouseMove определяют координаты курсора мыши в момент наступления события, параметр mousebutton равен 0, если кнопка мыши не нажата, 1, если нажата левая кнопка мыши, и 2, если нажата правая кнопка мыши. Параметр key в обработчиках OnKeyDown и OnKeyUp определяет виртуальный код нажатой клавиши. Параметр ch в обработчике OnKeyPress определяет нажатый символ.
Пример 1. Рисование мышью в окне.
Пример 2. Перемещение окна с помощью клавиатуры.