Delphi初浅入门笔记之五:过程和函数(总结篇)(转载)
通过以上两篇知道过程和函数有些类似。就我的理解除了返回值之外,还有一个不同是过程应用于事迹机制。而函数,应该更多是做为程序的一个子模块来应用。为了加深理解,转载了百度空间中的一片文章。
Delphi 函数和过程的应用与区别(转)
2009-11-10 21:43
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; //函数   
实例:
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;
http://hi.baidu.com/tf1008/blog/item/0299c7341a83da3b0a55a9d3.html
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号