Unit juga dapat berisi bagian initialization (inisialisasi) dan finalization (penutupan).
Dua potongan kode ini akan dijalankan secara otomatis saat program mulai berjalan dan saat program keluar masing-masing.
initialization: Dijalankan ketika program dibuka dan unit dimuat ke memori, sebelum kode program utama. Jika ada beberapa unit, bagian initialization masing-masing akan berjalan berurutan sesuai urutan referensi.
finalization: Dijalankan tepat sebelum program ditutup normal dan proses dihapus; urutan eksekusinya berkebalikan dengan initialization.
Kegunaan
Initialization: Mendaftarkan kelas, membuka file global / koneksi basis data, menginisialisasi variabel global, mendaftarkan komponen;
Finalization: Melepaskan memori, menutup handle, menyimpan konfigurasi, membatalkan pendaftaran sumber daya agar tidak terjadi kebocoran memori.
Kita akan mengubah file unit PAS dari pelajaran sebelumnya: MyUnit.pas
unit MyUnit;
{$ifdef FPC}
{$mode objfpc}{$H+}{$J-}
{$endif}
interface
procedure MyProcedure(const A: Integer);
function MyFunction(const S: string): string;
implementation
procedure MyProcedure(const A: Integer);
begin
WriteLn('A + 10 is: ', A + 10);
end;
function MyFunction(const S: string): string;
begin
Result := S + 'strings are automatically managed';
end;
// Bagian inisialisasi: Berjalan otomatis saat program memuat unit ini
initialization
WriteLn('Hello world!');
// Bagian penutupan: Berjalan otomatis sebelum program keluar normal
finalization
WriteLn('Goodbye world!');
end.Code language: JavaScript (javascript)
Hanya dua bagian di atas yang ditambahkan di bagian bawah file

Hasil eksekusi

Tulisan terakhir Goodbye world baru akan muncul setelah kamu menekan tombol Enter (saat program akan berhenti).
Initialization dan finalization