Язык:
Русский
English
SetGraphBufSize (процедура) (модуль Graph)
Изменяет заданный по умолчанию размер графического буфера, используемого для сканирования и заливки.
Объявление
Procedure SetGraphBufSize(BufSize : Word);
Режим
Real, Protected
Замечания
Размер внутреннего буфера устанавливается на BufSize, и буфер распределяется в куче при обращении к InitGraph.
Пример
Язык:
Русский
English
{ Пример программы для процедуры SetGraphBufSize }
uses Graph, Crt;
const Min = 0;
Max = 1256;
var
Gd, Gm : Integer;
I, R : Integer;
X0, Y0 : Integer;
BigPoly : array[Min .. Max] of PointType;
begin
Randomize;
{ Распределяем 8Кб буфер в куче, чтобы закрасить
полигон с 1256-ю вершинами }
SetGraphBufSize(8 * 1024);
Gd := Detect;
InitGraph(Gd, Gm, 'X:\BP');
if GraphResult <> grOk then
Halt(1);
X0 := GetMaxX;
Y0 := GetMaxY;
R := Y0 div 2;
{ Определяем в массиве координаты точек для
построения полигона в виде окружности
с 1256-ю вершинами и радиусом R }
for I := Min to Max do
with BigPoly[I] do
begin
X := X0 div 2 + Round(R * Sin(I/200));
Y := Y0 div 2 + Round(R * Cos(I/200));
end;
{ Закрашиваем полигон }
FillPoly(SizeOf(BigPoly) div SizeOf(PointType), BigPoly);
{ Ждём нажатия на клавишу }
repeat
until KeyPressed;
end.
const Min = 0;
Max = 1256;
var
Gd, Gm : Integer;
I, R : Integer;
X0, Y0 : Integer;
BigPoly : array[Min .. Max] of PointType;
begin
Randomize;
{ Распределяем 8Кб буфер в куче, чтобы закрасить
полигон с 1256-ю вершинами }
SetGraphBufSize(8 * 1024);
Gd := Detect;
InitGraph(Gd, Gm, 'X:\BP');
if GraphResult <> grOk then
Halt(1);
X0 := GetMaxX;
Y0 := GetMaxY;
R := Y0 div 2;
{ Определяем в массиве координаты точек для
построения полигона в виде окружности
с 1256-ю вершинами и радиусом R }
for I := Min to Max do
with BigPoly[I] do
begin
X := X0 div 2 + Round(R * Sin(I/200));
Y := Y0 div 2 + Round(R * Cos(I/200));
end;
{ Закрашиваем полигон }
FillPoly(SizeOf(BigPoly) div SizeOf(PointType), BigPoly);
{ Ждём нажатия на клавишу }
repeat
until KeyPressed;
end.