program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; type PCalc = ^TCalc; TCalc = function(X: Integer; Y: Integer): Integer; function CalculateSum(X: Integer; Y: Integer): Integer; begin Result := X + Y; end; function CalculateDiv(X: Integer; Y: Integer): Integer; begin Result := X div Y; end; var Calc: PCalc; iResult: Integer; begin try Calc := @CalculateSum; iResult := TCalc(Calc)(5, 5); Calc := @CalculateDiv; iResult := TCalc(Calc)(10, 2); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.