Programowanie w języku Delphi

Finalization

finalization - słowo kluczowe języka Delphi.

Opcjonalna sekcja finalization umożliwia wykonanie kodu w momencie zamykania aplikacji. Możesz użyć sekcji finalization, aby zwolnić zasoby zainicjowane w sekcji Initialization. Przykładowy moduł:

unit MainUnit;
 
interface
 
uses Windows; // włączamy moduł Windows
 
  procedure ProcMain(Param1, Param2 : Integer);
 
implementation
 
procedure ProcMain(Param1, Param2 : Integer);
begin
 
end;
 
initialization
  MessageBox(0, 'Rozpoczynamy pracę z modułem...', 'OK', MB_OK);
 
finalization
  MessageBox(0, 'Kończymy pracę z modułem...', 'OK', MB_OK);
 
 
end.


Jeżeli w programie korzysta się z sekcji Finalization, to konieczne staje się umieszczenie także sekcji Initialization. W przeciwnym przypadku próba uruchomienia programu zakończy się błędem: [Error] MainUnit.pas(17): Declaration expected but 'FINALIZATION' found. Sekcja Initialization może nie zawierać żadnego kodu ? istotna jest tylko jej obecność w programie.

Jeżeli chodzi o sekcję Finalization, to jest ona opcjonalna. Jeżeli np. w sekcji Finalization należy umieścić jakiś kod zwalniający pamięć, to nie będzie to konieczne w środowisku takim jak .NET, które samodzielnie dba o zwalnianie pamięci.

Kod z sekcji finalization jest wykonywany w odwrotnej kolejności niż ten z sekcji Initialization. Przykładowo, jeżeli program ładuje w kolejności moduły: A, B, C - zwalnia je w kolejności C, B, A.

Zobacz też: