| 
    
     |  
Packed 
Ключевое слово | 
Уплотняет сложные типы данных в минимальный объём памяти  | 
 unit | 
   
   type Name = Packed array[...] of ...; type Name = Packed class  ... end; type Name = Packed object ... end; type Name = Packed record ... end;
 |    |  
 
 
 |   
| Описание |  
Ключевое слово Packed говорит Delphi минимизировать память, взятую определенным объектом. 
  
Обычно, сложные типы данных, такие как записи, имеют свои элементы по 2, 4 или 8 байта, соответствующие типам данных. Например, поле Word было бы 4-байтовое. 
  
Записи также дополняются, для гарантии, что они закончены, 4-х байтовой границей. 
  
Упаковка отменяет это, сжимая данные в наименьшую память, хотя с последующим уменьшенным доступом выполнения.
 |  
 |  
| Примечания |  
Примеры распакованных данных:
  
Word     = 2 bytes 
LongWord = 4 bytes 
Single   = 4 bytes 
Double   = 8 bytes 
 |  
 |  
| Похожие команды |  
$Align  Определяет данные будут выровнены или запакованы
  
Array  Тип данных содержащий индексируемую коллекцию данных
  
Class  Начинает объявление типа объектного класса
  
Object  Позволяет данным типа подпрограмм обращаться к методу объекта
  
Record  Структурный тип данных содержащий поля данных
  
 
  |    | 
  | 
| Пример кода : Упаковка записи для уменьшения памяти |  
 type   // Объявление распакованной записи 
  TDefaultRecord = Record 
    name1   : string[4]; 
    floater : single; 
    name2   : char; 
    int     : Integer; 
  end; 
   // Объявление запакованной записи 
  TPackedRecord = Packed Record 
    name1   : string[4]; 
    floater : single; 
    name2   : char; 
    int     : Integer; 
  end; 
 
var 
  defaultRec : TDefaultRecord; 
  packedRec  : TPackedRecord; 
 
begin 
  ShowMessage('Размер обычной записи = '+IntToStr(SizeOf(defaultRec))); 
  ShowMessage('Размер запакованной записи = '+IntToStr(SizeOf(packedRec))); 
end; 
 |  
Размер обычной записи = 20 
Размер запакованной записи = 14 
 |  
  |  |   |   
  
 |