Використання у модулі процедур та функцій має свої особливості. Заголовок підпрограми містить вcі відомості, що необхідні для її виклику: ім’я, перелік та тип параметрів, тип результату для функції. Якщо до підпрограми буде вестись звертання з інших модулів, то ця інформація має бути розташована до implementation, тобто у інтерфейсну частину модуля, а якщо ж підпрограма використовуватиметься тільки підпрограмами поточного модуля, то її опис слід розміщати після implementation. Саме тіло підпрограми (її текст), де реалізований її алгоритм, записується у частині реалізації модуля.
 Інтерфейсна частина модуля містить тільки видимі (доступні для інших модулів) заголовки процедур та функцій.
 У випадку, коли імена змінних інтерфейсної частини модуля та у самій програмі співпадатимуть, звертання вестиметься до змінних, що описані у програмі. Для звертання до змінної модуля слід використовувати складене ім’я, що складається з імені модуля та імені змінної, відокремлених крапкою.
 Складені імена застосовуються при звертанні не тільки до імен змінних, а і до всіх імен, що описані у інтерфейсній частині модуля.
 Рекурсивне використанні модуля заборонене.
 Якщо у модулі є блок ініціалізації, то оператори з цього блоку виконуватимуться до початку виконання програми, у якій використовується цей модуль.
  
 Для більшої наглядності розглянемо текст модуля програми – файл unit1.pas.
 Як вже говорилось вище, за вмовчанням Delphi створює цей файл з базовими настройками та компонентами.
  
 unit Unit1;
  
 interface
  
 uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
  
 type
  TForm1 = class(TForm)
  private
  { Private declarations }
  public
  { Public declarations }
  end;
  
 var
  Form1: TForm1;
  
 implementation
  
 {$R *.DFM}
  
 end.
  
 У модулі заголовком є
 unit Unit1;
 як це вже про це говорилось вище.
 Опис констант дозволяє використовувати імена, як синоніми констант, їх необхідно визначити у розділі опису констант.
 Наприклад, додамо до існуючого тексту програми опис констант:
  
 unit Unit1;
  
 interface
  
 uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
  
 const
  k=1024;
  
 type
  TForm1 = class(TForm)
  private
  { Private declarations }
  public
  { Public declarations }
  end;
  
 var
  Form1: TForm1;
  
 implementation
  
 {$R *.DFM}
  
 end.
  
 Ми додали константу k, яка має ціле значення 1024.
 У розділі описі змінних необхідно визначити всі глобальні змінні, що використовуватимуться у програмі.
 Наприклад доповнимо блок опису змінних двомі цілими змінними i та j.
  
 var
  Form1: TForm1;
  i, j : integer;
  
 Моделювання форми.
 Перейдемо тепер безпосередньо до створення програми. Спочатко створимо форму, тобто візуальну частину програми. На відміну від більш старих версій мов програмування, Delphi значно полегшує роботу з інтерфейсною частиною. Для того, щоб додати кнопку до форми досить мишкою вибрати у стандартній частині (Standard) палітри компонентів кнопку 
 і клацнути потім на формі. На палітрі форми з’явиться
  
 
  
 У модулі автоматично додастся до розділу опису типів Button1: TButton;
  
 type
  TForm1 = class(TForm)
  Button1: TButton;
  
 Згадаємо властивості кнопки. По-перше, надпис на кнопці, за який відповідає змінна caption або, якщо бути точнішим, Button1.Caption. Тип цієї змінної – string, початкове значення – ’Button1’. Це значення можна міняти як у самій програмі, так і у властивостях об’єкту. Розглянемо приклад, коли при натисканні на кнопку, напис на ній буде змінюватись на ‘Pressed’.
 Як розглядалось вище, кожен об’єкт форми має перелік допустимих подій. Також для кожного об’єкта є і головна подія. Наприклад для кнопки головною подією є натискання на неї.
 Для того, щоб описати послідовність дій, які відбуватимуться при натісканні на кнопку, досить або двічі клацнути у неї мишкою, або вибрати у Object Inspector кнопки Events, і далі OnClick.
 У тексті модуля буде створена нова процедура
  
 procedure TForm1.Button1Click(Sender: TObject);
 begin
  
 end;
  
 причому її заголовок буде розташований у інтерфейсній частині модуля
  
 type
  TForm1 = class(TForm)
  Button1: TButton;
  procedure Button1Click(Sender: TObject);
  
 Далі, вся послідовність дій, що відбуватиметься при натисканні на цю кнопку, має бути розташована у алгоритмічній частині процедури між службовими словами begin та end;, що утворюють складний оператор.
  
 У нашому випадку, у процедурі повинен змінюватись надпис на клавіші. Це матиме такий вигляд
  
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Button1.Caption:=’ Pressed ’;
 end;
  
 Весь текст модуля матиме вигляд
  
 unit Unit1;
  
 interface
  
 uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
  
 type
  TForm1 = class(TForm)
  Button1: TButton;
  procedure Button1Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;
  
 var
  Form1: TForm1;
  
 implementation
  
 {$R *.DFM}
  
 procedure TForm1.Button1Click(Sender: TObject);
 begin
  Button1.Caption:=' Pressed ';
 end;
  
 end.
  
 Відмітимо, що частина “заготовок” для підпрограм створюється автоматично при встановленні якоїсь події (наприклад події, що відбувається при натисканні на клавішу) для об'єкту форми. У нашому прикладі червоним кольором відмічена частина, що написана “вручну” програмістом, решта створюється автоматично. Крім того, для використання подій, наприклад кнопок, спочатку їх потрібно розташувати у формі.