Część opisowa deklaracji procedury/funkcji często zawiera deklaracje lokalnych identyfikatorów używanych wewnątrz danej procedury/funkcji. Mogą to być deklaracje stałych, zmiennych, typów a także innych procedur i funkcji. Zakres ważności lokalnych identyfikatorów ogranicza się do wnętrza procedury/funkcji zawierającej zagnieżdżone deklaracje.
Procedury czasami zawierają wewnątrz swej części opisowej deklaracje innych funkcji i procedur. Przykład:
procedure DoSomething(S: string); var X, Y: Integer; procedure NestedProc(S: string); begin ... end; begin ... NestedProc(S); ... end;
Zakres ważności zagnieżdżonej procedury/funkcji jest ograniczony do wnętrza procedury/funkcji, w której dokonano zagnieżdżenia. W powyższym przykładzie, procedura NestedProc może być wywoływana tylko ze środka procedury DoSomething.