Finalization
Adam Boduch
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ż: