请问怎样使用过程/函数类型,在什麽时候使用,它用于解决什麽样的问题?(50分)

  • 主题发起人 zhangl1106
  • 开始时间
Z

zhangl1106

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎样使用过程/函数类型,在什麽时候使用,它用于解决什麽样的问题?
type
TFun = function:integer;
var
f:TFun;
implementation
{$R *.dfm}
function myfun:integer;
begin
end;
 
一段程序需要多次调用的时候我们把它作成一个过程来调用,如果这一段程序调用后需要一个返回值的话写成一个函数
 
请看 http://www.delphibbs.com/delphibbs/dispq.asp?lid=0583197 中我的回答。
过程/函数类型一般在要对数据进行事先不能确定的操作时使用的。举个例子吧:如果小
王来玩,我会给他倒杯可乐;如果小李来玩,我会给他倒杯茶。你可以将倒杯可乐和倒杯茶
做成两个过程,针对不同的客人。代码如下:
type
TDrinkProc=procedure(Guest:TGuest);
procedure Drink_Cola(Guest:TGuest);
begin
Guest.Drink:=1;
//cola
end;
procedure Drink_Tea(Guest:TGuest);
begin
Guest.Drink:=2;
//tea
end;
procedure Drink_Other(Guest:TGuest);
var
Drink:Integer;
begin
Drink:=Guest.AskFavoriteDrink;
//询问客人喜欢的饮料
Guest.Drink:=Drink;
end;
procedure GiveGuestDrink(Guest:TGuest);
var
DrinkProc:TDrinkProc;
begin
if Guest.Name='小王' then
DrinkProc:=Drink_Cola
else
if Guest.Name='小李' then
DrinkProc:=Drink_Tea
else
DrinkProc:=Drink_Other;
DrinkProc(Guest);
end;
 
补充一下吧,如果想动态加载dll的话
也得事先定义过程/函数类型
 
实际上过程就是没有(我们不需要其)返回值的函数
 
楼上审题错误
 
[:)][blue][/blue]过程和函数的区别在于:
过程不需要返回参数,而函数要返回参数
在调用过程时,直接给出过程名和要传递的参数即可
在调用函数时,必须要用变量=函数名(参数列表)
 
樓上的幾位怎麼都不看看清楚題啊!
creation-zy是正解。
 
顶部