Zu erwähnen sei, daß selbst die nested procedures/functions selber wiederum welche enthalten können.
Und was vorallem wichtig ist, es wird "immer" die letzte Daklaration verwendet ... ist bei Variablen/Typen/Kontanten... genauso.
Delphi-Quellcode:
procedure MyProcedure1;
begin
s := IntToStr(123);
// ruft IntToStr aus der Unit SysUtils auf
end;
function IntToStr(i: integer): integer;
// >>IntToStr[1]
begin
...
end;
procedure MyProcedure2;
begin
s := IntToStr(123);
// ruft die IntToStr[1]
end;
procedure MyProcedure3;
function IntToStr(i: integer): integer;
// >>IntToStr[2]
begin
s := IntToStr(123);
// ruft sich selber auf, also IntToStr[2]
end;
begin
s := IntToStr(123);
// ruft ebenfalls IntToStr[2] auf
s := SysUtils.IntToStr(123);
// ruft IntToStr aus der Unit SysUtils auf
end;