• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi初浅入门笔记之五:过程和函数(总结篇)(转载)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

通过以上两篇知道过程和函数有些类似。就我的理解除了返回值之外,还有一个不同是过程应用于事迹机制。而函数,应该更多是做为程序的一个子模块来应用。为了加深理解,转载了百度空间中的一片文章。

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[delphi]在DLL中多线程同步Synchronize卡死问题发布时间:2022-07-18
下一篇:
delphi控制POS打印机发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap