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ż:

0 komentarzy