Підпрограма – це поіменована (тобто кожна підпрограма має своє унікальне для даної програми чи модуля ім’я) послідовність операторів, які визначені та записані тільки у одному місці програми (модуля) так, що їх можна використовувати при виконанні одного або кількох фрагментів програми (модуля). Це робиться у двох випадках:
1. Однакова послідовність операторів використовується у багатьох моментах реалізації алгоритму. Тоді для економії місця та обсягу програми цю послідовність операторів “виносять” до підпрограми, а потім просто викликають цю підпрограму у відповідних моментах.
2. Для виділення фрагменту алгоритму у окремий блок. Цим досягається краща візуалізація виконання алгоритму.
У Delphi існує два типи підпрограм: процедури та функції.
При використанні процедур та функції у Delphi відповідний модуль має містити у собі текст процедури або функції та звертання (сам виклик) до неї.
Послідовність текстів процедур та функцій має йти у порядку зростання вкладеності. Тобто спочатку описуються процедури, які не використовують нестандартних процедур та функцій, потім ті, що можуть використовувати написані автором підпрограми, описані вище у програмі.
Підпрограма може містити такі ж блоки опису модулів, констант, типів, змінних та ін., що і сам модуль.
Змінні, константи, та інші описові блоки підпрограми “працюють” тільки у цій підпрограмі (локальні змінні, локальні типи та ін). Крім того підпрограма може використовувати усі змінні, типи та ін., описані у самому модулі (перед текстом підпрограми).