Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



ReallocMem

позволяет изменить размер существующего
блока хранения в оперативной памяти

|| procedure ReallocMem ( var StoragePointer : Pointer; StorageSize : Integer ) ;

Описание:

    Delphi процедура ReallocMem изменяет размер памяти существующего блока хранения.

     Размер может быть меньшим или больше.

     Если меньше, тогда существующий размер памяти будет уменьшен на разность существующего размера к необходимому.

     Если больше, тогда размер памяти будет расширен. Или будет создан новый блок памяти, если это необходимо. В любом случае, блочные данные существующей памяти сохранены, и новая часть памяти инициализирована.

Пример кода:

type
   TRecord = Record
      name : string[10];
      age : Byte;
   end;

var
   recPointer : ^TRecord;

begin
   // Allocate storage for 2 records
   // Note : It is better to use New for this
   // It is used here for illustration purposes only
   GetMem(recPointer, 2 * SizeOf(TRecord));

   // Fill out these 2 records with values
   recPointer.name := 'Brian';
   recPointer.age := 23;

   Inc(recPointer);
   recPointer.name := 'Jim';
   recPointer.age := 55;

   // Whoops - forgot to add Sally ...
   Dec(recPointer);
   ReallocMem(recPointer, 3 * SizeOf(TRecord));

   // Now add a third record
   Inc(recPointer,2);
   recPointer.name := 'Sally';
   recPointer.age := 38;

   // Now display these values
   Dec(recPointer, 2);
   ShowMessageFmt('%s is %d',[recPointer.name, recPointer.age]);
   Inc(recPointer);
   ShowMessageFmt('%s is %d',[recPointer.name, recPointer.age]);
   Inc(recPointer);
   ShowMessageFmt('%s is %d',[recPointer.name, recPointer.age]);
end;

Результат выполнения:

Brian is 23
Jim is 55
Sally is 38