Процедура Dispose в Delphi очищує пам'ять на яку вказує покажчик.
System unit
- procedure Dispose (var VariablePointer : Pointer-Type);
- procedure Dispose (var ObjectPointer : Object-Pointer; Destructor);
Процедура Dispose виходила у двох версіях.
Старша версія – застарілий метод знищення об'єктів (Тепер натомість ви повинні викликати деструктор класу).
Перша версія звільняє пам'ять, що використовується змінною типу покажчика VariablePointer.
Ви повинні використовувати Dispose, коли більше не використовується розподілена змінна з використанням New.
Попередження.
Змінна стає невизначеною після виклику Dispose. Вона не встановлює на нуль (nil).
Процедура Dispose: Розподіл пам'яті для запису, присвоєння і потім звільнення від неї
type
TCustomer = Record
name : string[20];
age : Byte;
end;
var
custRecPtr : ^TCustomer;
begin
// Створення запису клієнта за допомогою 'New'
New(custRecptr);
// Присвоєння йому значень
custRecPtr.name := 'Her indoors';
custRecPtr.age := 55;
// Тепер показуємо ці значення
ShowMessageFmt('%s is %d',[custRecPtr.name, custRecPtr.age]);
// Тепер позбавляємося цього розподіленого запису
Dispose(custRecPtr);
end;
Результат
Her indoors is 55
Подібні функції, процедури та команди
FreeMem — звільняє пам'ять, що використовується змінною.
GetMem — отримує вказану кількість байтів пам'яті.
New — створює нову змінну типу покажчик.
ReallocMem — дозволяє змінити розмір існуючого блоку пам'яті.
