Турбо Паскаль 6.0

Процедура GetBufMem Memory


================================================================= Объявление procedure GetBufMem(var P: Pointer; Size: Word);

Функция Распределяет кэш-буфер для Size байт и запоминает указатель на него в Р. Если нет памяти для кэш-буфера запрашиваемого размера, Р устанавливается в nil. Кэш- буфер отличается от обычных блоков кучи (распределяемых с помощью New, GetMem или MemAlloc), в которых они могут размещаться или освобождаться монитором памяти в любое время. Указатель, передаваемый в GetBufMem, становится указателем на кэш-буфер и он (и только он) корректируется, когда буфер перемещается монитором памяти. Если монитор памяти решает освободить буфер, он устанавливает этот указатель в nil. Кэш-буфер может быть освобожден через вызов FreeBufMem. Кэш-буфера будут занимать любое нераспределенное пространство кучи между HeapPtr и HeapEnd, включая область, установленную для пула надежности программы.

Turbo Vision использует кэш-буфера для подкачки содержимого объектов TGroup (таких, как окна, диалоговые окна и панель экрана), как только эти объекты устанавливают флаг ofBuffered - это значительно повышает производительность операций перерисовки.

См. также FreeBuffMem, InitMemory, TGroup.Draw.



Содержание раздела