Mit tief verschachtelt meinte ich eher sowas in dieser Richtung ...
(freihändig eingetippt um 20:00, bitte um Gnade
)
Der konkrete Sinn sei mal dahingestellt.
Delphi-Quellcode:
type
TProcLevel3 = reference to function( AData : Integer ) : Integer;
...
TProcLevel2 = reference to procedure ( AData : Integer; AProcLevel3 : TProcLevel3);
TProcLevel1 = reference to procedure ( AData : Integer; AProcLevel2 : TProcLevel2);
procedure Level1( AProc1 : TProcLevel1, AProcLevel2 : TProcLevel2 );
begin
if Assigned( AProc1 ) then
AProc1( 1, LProcLevel2);
end;
procedure Level;
var
LProc3 : TProcLevel3;
LResult : Integer;
begin
LProc3 .= function( AData : Integer ) : Integer
begin
Result := AData * AData;
end;
Level1(
procedure ( AData : Integer; AProcLevel1 : TProcLevel1)
begin
end,
//
procedure ( AData : Integer; AProcLevel2 : TProcLevel2)
begin
if Assigned( AProicLevel2) then
AProcLevel2( 2, LProc3 );
end,
)
end;