//不就是使用过程参数吗
//Unit1:
type
TCalculateFunc=function(x:integer):integer;
function XxX(x:integer):integer;
begin
Result:=x*x;
end;
function XpX(x:integer):integer;
begin
Result:=x+x;
end;
//Uint2
procedure ShowResult(CalcFunc:TCalculateFunc; x:integer);
begin
ShowMessage(IntToStr(CalcFunc(x)));
end;
//main
begin
ShowResult(XxX,99);
ShowResult(XpX,99);
end;
如果参数形式不统一,可以使用对象/结构等使之统一