Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник Pascal ABC.doc
Скачиваний:
66
Добавлен:
07.11.2018
Размер:
985.6 Кб
Скачать

Класс Picture

Для работы с рисунками в модуле GraphABC используются либо описатели, либо объекты класса Picture.

Класс Picture описывает рисунок, хранящийся в оперативной памяти, и имеет следующий интерфейс:

type   Picture=class     constructor Create(w,h: integer);     constructor Create(fname: string);     constructor CreateFromRect(r: Rect);     constructor CreateFromScreenBufferRect(r: Rect);     destructor Destroy;     procedure Load(fname: string);     procedure Save(fname: string);     procedure SetSize(w,h: integer);     property Width: integer;     property Height: integer;     property Transparent: boolean;     property NeedDestroy: boolean;     function Handle: integer;     function Intersect(p: Picture): boolean;     procedure Draw(x,y: integer);     procedure Draw(x,y,w,h: integer);     procedure Draw(x,y: integer; r: Rect);     procedure Draw(x,y,w,h: integer; r: Rect);     procedure CopyRect(dst: Rect; p: Picture; src: Rect);     procedure FlipHorizontal;     procedure FlipVertical;   end;

Конструкторы и деструкторы

constructor Create(w,h: integer);

Создает объект класса Picture ширины w и высоты h. Рисунок может быть скопирован в него из прямоугольной области другого рисунка методом CopyRect. На рисунке может быть также произведено рисование вызовом любых процедур рисования после установки его в качестве поверхности рисования (метод SetDrawingSurface).

constructor Create(fname: string);

Создает объект класса Picture и загружает в него рисунок из файла fname (допустимые форматы файлов: .bmp, .gif, .jpg, .png). Рисунок с именем fname ищется вначале в текущем каталоге, а затем в подкаталоге Media\Images\ каталога программы PascalABC.exe.

constructor CreateFromRect(r: Rect);

Создает объект класса Picture и копирует в него изображение из прямоугольника r на экране. Размер рисунка равен размеру прямоугольника.

constructor CreateFromScreenBufferRect(r: Rect);

Создает объект класса Picture и копирует в него изображение из прямоугольника r внеэкранного буфера. Размер рисунка равен размеру прямоугольника.

destructor Destroy;

Разрушает объект. Если NeedDestroy установлено в True, то рисунок, находящийся в объекте Picture, также разрушается.  

Свойства

property Width: integer;

Ширина рисунка.

property Height: integer;

Высота рисунка.

property Transparent: boolean;

Прозрачность рисунка. Если Transparent=True, то при выводе рисунка его фон не отображается. Фоновым считается цвет левого нижнего пиксела рисунка.

property NeedDestroy: boolean;

Определяет, должен ли рисунок разрушаться при вызове деструктора и метода Load. NeedDestroy обычно устанавливается в False, если несколько объектов класса Picture разделяют один рисунок.  

Методы

procedure Load(fname: string);

Загружает рисунок из файла с именем fname. Если NeedDestroy установлено в True, то рисунок, находившийся ранее в объекте Picture, разрушается. Рисунок с именем fname ищется вначале в текущем каталоге, а затем в подкаталоге Media\Images\ каталога программы PascalABC.exe.

procedure Save(fname: string);

Сохраняет рисунок в файле с именем fname. Формат рисунка устанавливается расширением имени файла. Допустимые расширения: .bmp, .gif, .jpg, .png.

function Handle: integer;

Возвращает описатель рисунка.

procedure Draw(x,y: integer);

Выводит рисунок в позицию (x,y) графического окна.

procedure Draw(x,y,w,h: integer);

Выводит рисунок в позицию (x,y) графического окна, масштабируя его к размеру (w,h). Если w<0 или h<0, то выводится зеркальное отражение рисунка относительно вертикалоной или горизонтальной оси соответственно.

procedure Draw(x,y: integer; r: Rect);

Выводит часть рисунка, заключенную в прямоугольнике r, в позицию (x,y) графического окна.

procedure Draw(x,y,w,h: integer; src: Rect);

Выводит часть рисунка, заключенную в прямоугольнике r, в позицию (x,y) графического окна, масштабируя ее к размеру (w,h).

procedure CopyRect(dest: Rect; p: Picture; src: Rect);

Копирует в прямоугольник dest текущего рисунка часть рисунка p, заключенную в прямоугольнике src.

procedure FlipHorizontal;

Зеркально отображает картинку относительно горизонтальной оси симметрии.

procedure FlipVertical;

Зеркально отображает картинку относительно вертикальной оси симметрии.