zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Android 动画
    Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)
    android ANR
    Android 服务端开发之开发环境配置
    安装Android sdk 4.4(19)出现问题的解决方案
    adb uninstall/pull/push 命令的使用总结
    Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...
    Android.mk文件语法规范 原文
    Android MediaProvider数据库模式
    Android MVC模式
  • 原文地址:https://www.cnblogs.com/liszt/p/1969432.html
Copyright © 2011-2022 走看看