Unit dapat mengemas deklarasi tipe, fungsi, prosedur, konstanta, variabel yang digunakan bersama agar dapat dipanggil oleh unit lain atau program utama, setara dengan modul / paket pada bahasa pemrograman lain.
Membuat Unit
Unit terbagi menjadi dua bagian inti:
Bagian interface (antarmuka): Konten yang diekspos ke luar, dapat diakses langsung setelah diimpor oleh file lain;
Bagian implementation (implementasi): Kode pribadi internal, hanya terlihat di unit saat ini dan tidak dapat dipanggil dari luar.
Contoh
Buat file bernama MyUnit.pas untuk menulis satu unit.
unit MyUnit;
{$ifdef FPC}
{$mode objfpc}{$H+}{$J-}
{$endif}
// Bagian antarmuka: publik ke luar
interface
procedure MyProcedure(const A: Integer);
function MyFunction(const S: string): string;
// Bagian implementasi: kode pribadi
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;
end.Code language: JavaScript (javascript)

Pembaca yang teliti akan menyadari bahwa end. di akhir tidak memiliki pasangan begin?
Struktur sintaks unit (
unit) Pascal berbeda dengan program (program)
programProgram utama: wajib memiliki blokbegin ... end.sebagai titik masuk eksekusi program
unitUnit: tidak memerlukan begin globalSeluruh unit diakhiri dengan
end.(titik menandakan akhir file, tidak ada begin global yang berpasangan)
- Di dalam
interfaceditulis prototipe fungsi/prosedur, tipe, konstanta, variabel global; file luar dapat memanggilnya setelah menggunakan perintahuses; implementationhanya berisi implementasi lengkap fungsi; prosedur lokal dan variabel pribadi yang didefinisikan di sini tidak terlihat oleh unit lain;- File unit dimulai dengan
unit Nama;dan diakhiri denganend..
Memuat Unit di Program Utama
File program utama kita adalah mydemo.pas
Gunakan kata kunci uses untuk memuat unit buatan sendiri
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
program MyProgram;
// Muat unit buatan sendiri MyUnit
uses
MyUnit;
begin
WriteLn(MyFunction('Note: '));
MyProcedure(5);
ReadLn;
end.Code language: PHP (php)
Tulisan MyUnit; di bawah uses merujuk pada nama unit, bukan nama file .pas.
Nama ini berasal dari baris pertama MyUnit.pas: unit MyUnit;
Meskipun nama file dan nama unit bisa berbeda, disarankan agar keduanya sama. Jika berbeda, perintah uses tetap menggunakan nama unit, bukan nama file.

Sekarang kompilasi dan jalankan; program utama akan memanggil fungsi yang ada di dalam unit.

Sekarang kompilasi dan jalankan

Setelah dikompilasi, akan muncul dua file baru di folder proyek

.ppu (Pascal Unit File, file metadata hasil kompilasi unit)
Hanya dihasilkan saat mengompilasi file unit; program utama program tidak menghasilkan file .ppu
- Menyimpan metadata hasil kompilasi bagian
interfaceunit: prototipe fungsi, tipe, konstanta, simbol ekspor; - Saat file lain menjalankan
uses MyUnit, kompiler tidak perlu mengurai ulang seluruh kode sumber MyUnit.pas, langsung membaca file .ppu untuk validasi antarmuka dengan cepat; - Mempercepat waktu kompilasi proyek besar secara signifikan; merupakan file inti kompilasi inkremental FPC.
MyUnit.o: Instruksi mesin biner hasil kompilasi MyUnit.pas (seluruh kode bagian implementation)
mydemo.o: Kode mesin biner program utama mydemo.pas
Kompiler pertama-tama menerjemahkan setiap file .pas menjadi file objek biner mandiri .o; kemudian linker menggabungkan semua file .o menjadi program eksekusi .exe.