博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

delphi的函数和过程的区别和应用

Posted on 2009-06-04 10:40  longker的博客  阅读(1100)  评论(0)    收藏  举报

1.格式如下:

(1)函数:

function 函数名(标识符)(param1,param2:string;int1,int2:integer):返回值;
function GetUserInfo(sAsia,sState,sCity:string;sAge,sHeight:integer):boolean;

(2)过程:

procedure 过程名(标识符)(param1,param2,param3:string);
procedure MyDelFile(sFileName:string;)


2.应用如下:

function MyDelFileFunc(sFileName:string):boolean;
begin
  Result :
= DeleteFile(sFileName);   //注意这里需要返回值,不然下面的调用无法判断是否删除;
end;

procedure MyDelFileProc(sFileName:string);
begin
  DeleteFile(sFileName);
end;

procedure TForm1.Button1Click(Sender : TOBJect);
var
  bIsCheck : boolean;
begin
  MyDelFileProc(
'd:\1.txt');               //调用过程进行删除;无法判断是否已经删除;
  bIsCheck :
= MyDelFileFunc('D:\1.txt');   //调用函数进行删除; 可以通过返回值判断是否删除
  
if bIsCheck then 
  
begin
    showmessage(
'del is Ok');
  
end
  
else
  
begin
    showmessage(
'del is NO');
  
end;
end;

 

3.在Delphi中,函数或者过程地址可以通过赋值给一个变量,变量用如下方式声明:


var p : procedure(sFileName:string);  //过程

var f :function(sFilename:sting):boolean;  //函数

(1)

var p : procedure(sFileName:string);
var f : function(sFileName:string);

procedure MyDelFileProc(sFileName:string);
begin
  DeleleFile(sFileName);
end;

function MyDelFileFunc(sFileName:string):boolean;
begin
  Result :
= DeleleFile(sFileName);     //注意这里需要返回值,不然下面的调用无法判断是否删除;
end;

procedure TForm1.Button1Click(Sender : TOBJect);
var
  bIsClick : boolean;
begin
  p :
= MyDelFileProc;
  f :
= MyDelFileFunc;
  p(
'd:\1.txt');
  bIsClick :
= f('d:\1.txt');
  
if bIsClick then
  
begin
    showmessage(
'Del Ok');
  
end
  
else
  
begin
    showmessage(
'Del No');
  
end;
  
end;

4.通过定义一个过程和函数的类型,在定义类型的变量;

Type TDelProc = procedure(sFileName:string);
Type TDelFunc 
= function(sFileName:string):boolean;

procedure TForm1.Button5Click(Sender : TOBJect);
var
  bIsClick : boolean;
  DelProc  : TDelProc;
  DelFunc  : TDelFunc;
  
begin
  DelProc :
= MyDelFileProc;
  DelFunc :
= MyDelFileFunc;
  DelProc(
'd:\1.txt');
  bIsClick :
= DelFunc('d:\1.txt');
  
if bIsClick then
  
begin
    showmessage(
'Del Ok');
  
end
  
else
  
begin
    showmessage(
'Del No');
  
end;
DelProc :
= nil;
DelFunc :
= nil;  //可以赋值类型的变量为nil为清除

end;

5.在Delphi中,有种特殊的过程叫做Method(方法);在定义方法类型的时候要在定义过程的后面加上 of object

如:

Type TMyMethod = procedure(num:integer) of object;

也可以定义类型的变量:

var
  MyMethod : TMyMethod;

方法类型常用于定义类的事件定义,如控件中OnClick事件,他的类型定义:

type TNotifyEvent=Procedure(Sender : TObject) of object;

定义普通类型和方法类型

Type TMyInfo = produce(num:integer);
type TMyInfoMethod = procedure(num:integer) of object;