Читать интересную книгу Описание языка PascalABC.NET - W Cat

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 40 41 42 43 44 45 46 47 48 ... 101

Параметры x и y в обработчиках OnMouseDown, OnMouseUp и OnMouseMove определяют координаты курсора мыши в момент наступления события, параметр mousebutton равен 0, если кнопка мыши не нажата, 1, если нажата левая кнопка мыши, и 2, если нажата правая кнопка мыши. Параметр key в обработчиках OnKeyDown и OnKeyUp определяет виртуальный код нажатой клавиши. Параметр ch в обработчике OnKeyPress определяет нажатый символ.

Пример 1. Рисование мышью в окне.

Пример 2. Перемещение окна с помощью клавиатуры.

Виртуальные коды клавиш

VK_Left

VK_Up

VK_Right

VK_Down

VK_PageUp

VK_PageDown

VK_Prior

VK_Next

VK_Home

VK_End

VK_Insert

VK_Delete

VK_Enter

VK_Return

VK_Back

VK_Tab

VK_ShiftKey

VK_ControlKey

VK_F1

VK_F2

VK_F3

VK_F4

VK_F5

VK_F6

VK_F7

VK_F8

VK_F9

VK_F10

VK_F11

VK_F12

VK_Menu

VK_Pause

VK_CapsLock

VK_Capital

VK_PrintScreen

VK_Help

VK_Space

VK_A

VK_B

VK_C

VK_D

VK_E

VK_F

VK_G

VK_H

VK_I

VK_J

VK_K

VK_L

VK_M

VK_N

VK_O

VK_P

VK_Q

VK_R

VK_S

VK_T

VK_U

VK_V

VK_W

VK_X

VK_Y

VK_Z

VK_LWin

VK_RWin

VK_Apps

VK_Sleep

VK_LineFeed

VK_NumPad0

VK_NumPad1

VK_NumPad2

VK_NumPad3

VK_NumPad4

VK_NumPad5

VK_NumPad6

VK_NumPad7

VK_NumPad8

VK_NumPad9

VK_Multiply

VK_Add

VK_Separator

VK_Subtract

VK_Decimal

VK_Divide

VK_NumLock

VK_Scroll

VK_LShiftKey

VK_RShiftKey

VK_LControlKey

VK_RControlKey

VK_LMenu

VK_RMenu

VK_KeyCode

VK_Shift

VK_Control

VK_Alt

VK_Modifiers

VK_Select

VK_Print

VK_Snapshot

Модуль ABCObjects

Модуль ABCObjects: обзор

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

Модуль ABCObjects предназначен для раннего обучения основам объектно-ориентированного программирования, а также для реализации графических и анимационных проектов средней сложности. Он реализован на основе модуля GraphABC.

На основе модуля ABCObjects созданы модули ABCSprites, ABCButtons, ABCChessObjects, ABCHouse, ABCRobots, ABCAdditionalObjects.

Следующие темы помогут изучить возможности модуля ABCObjects:

ABCObjects: быстрое введение

Диаграмма классов ABCObjects

Классы ObjectABC, BoundedObjectABC

Классы RectangleABC, SquareABC, EllipseABC, CircleABC, RoundRectABC, RoundSquareABC, TextABC

Классы RegularPolygonABC, StarABC

Классы PictureABC, MultiPictureABC

Мультирисунки

Классы BoardABC, ObectBoardABC

Массив графических объектов Objects

Класс ContainerABC

Контейнеры графических объектов

Переменные, процедуры и функции модуля ABCObjects

Ускорение перерисовки графических объектов

Совмещение графического вывода модулей ABCObjects и GraphABC

Диаграмма классов

На рисунке приведена диаграмма классов модуля ABCObjects.

Класс SpriteABC описан в модуле ABCSprites, однако, приведен на диаграмме как один из важнейших.

Класс ObjectABC

Класс ObjectABC является базовым классом для всех графических объектов ABCObjects. Его основными потомками, определенными в модуле ABCObjects, являются следующие классы: BoundedObjectABC, RectangleABC, SquareABC, EllipseABC, CircleABC, TextABC, RegularPolygonABC, StarABC, PictureABC, MultiPictureABC, BoardABC и ContainerABC. Класс ObjectABC - абстрактный: объекты этого класса не создаются.

Конструкторы класса ObjectABC

constructor Create(x,y,w,h: integer; cl: GColor);

Создает графический объект размера (w, h) цвета cl с координатами левого верхнего угла (x, y)

constructor Create(g: ObjectABC);

Создает графический объект - копию объекта g

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

property Left: integer;

Отступ графического объекта от левого края

property Top: integer;

Отступ графического объекта от верхнего края

property Width: integer;

Ширина графического объекта

property Height: integer;

Высота графического объекта

property dx: integer;

x-координата вектора перемещения объекта при вызове метода Move. По умолчанию установлено в 0. Для неподвижных объектов может быть использовано для хранения любой дополнительной информации, связанной с объектом

property dy: integer;

y-координата вектора перемещения объекта при вызове метода Move. По умолчанию установлено в 0. Для неподвижных объектов может быть использовано для хранения любой дополнительной информации, связанной с объектом

property Center: Point;

Центр графического объекта

property Position: Point;

Левый верхний угол графического объекта

property Visible: boolean;

Видим ли графический объект

property Color: GColor;

Цвет графического объекта

property FontColor: GColor;

Цвет шрифта графического объекта

property Text: string;

Текст внутри графического объекта

property TextVisible: boolean;

Видимость текста внутри графического объекта

property TextScale: real;

Масштаб текста относительно размеров графического объекта, 0<=TextScale<=1. При TextScale=1 текст занимает всю ширину или высоту объекта. По умолчанию TextScale=0.8

property FontName: string;

Имя шрифта для вывода свойства Text

property FontStyle: FontStyleType;

Стиль шрифта для вывода свойства Text

property Number: integer;

Целое число, выводимое в центре графического объекта. Для вывода используется свойство Text

property RealNumber: real;

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

property Owner: ContainerABC;

Владелец графического объекта, ответственный также за перерисовку графического объекта внутри себя (по умолчанию nil)

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

procedure MoveTo(x,y: integer);

Перемещает левый верхний угол графического объекта к точке (x,y)

procedure MoveOn(a,b: integer);

Перемещает графический объект на вектор (a,b)

procedure Move; virtual;

Перемещает графический объект на вектор, задаваемый свойствами dx,dy

procedure Scale(f: real); virtual;

Масштабирует графический объект в f раз (f>1 - увеличение, 0<f<1 - уменьшение)

procedure ToFront;

Переносит графический объект на передний план

procedure ToBack;

Переносит графический объект на задний план

function Bounds: System.Drawing.Rectangle;

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

function PtInside(x,y: integer): boolean; virtual;

Возвращает True, если точка (x,y) находится внутри графического объекта, и False в противном случае

function Intersect(g: ObjectABC): boolean;

Возвращает True, если изображение данного графического объекта пересекается с изображением графического объекта g, и False в противном случае. Белый цвет считается прозрачным и не принадлежащим объекту

function IntersectRect(r: System.Drawing.Rectangle): boolean;

Возвращает True, если прямоугольник графического объекта пересекается прямоугольником r, и False в противном случае

function Clone0: ObjectABC; virtual;

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

function Clone: ObjectABC;

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

procedure Draw(x,y: integer; g: Graphics); virtual;

Защищенная. Не вызывается явно. Переопределяется для каждого графического класса. Рисует объект на объекте g: Graphics

1 ... 40 41 42 43 44 45 46 47 48 ... 101
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Описание языка PascalABC.NET - W Cat.
Книги, аналогичгные Описание языка PascalABC.NET - W Cat

Оставить комментарий