delphi 过程以保留字procedure开始,没有返回值;函数以保留字function开始,有返回值。过程参数位于括号里面,多个参数之间以分号分隔,例如:

procedure SetDate(Year: Integer; Month: Integer; Day: Integer);

也可以将相同类型的参数组合在一起,则上述过程标题写成:

procedure SetDate(Year, Month, Day: Integer);

函数在标题中还多了一项——返回值的类型。下面是一个返回值为Double型的函数标题:

function GetAverage(num:integer;total:Double):Double;

1.基本概念

(1)函数

函数有两类:

一类是标准函数,这一类函数由Delphi定义并实现,程序员可以直接引用;

另一类为自定义函数,一个自定义函数应首先在程序声明部分声明,之后才可以在程序的执行部分加以调用。

过程或函数的语句部分由begin开始、end结束。函数需要一个返回值。可以将返回值赋给函数名称,也可以将返回值赋给Result变量。

例::

function GetAverage(num:integer;total:Double):Double;

begin

GetAverage := total / num;

end;

也可以将返回值赋给Result变量:

Result := total / num;

(2)过程

定义过程的保留字是procedure。

过程也有两类:一类为Delphi定义的标准过程,另一类为自定义过程。

2. 参数与作用域

(1)参数

过程和函数与外界的数据通信有两种方式:一种是通过全局量,另一种是通过参数。最常用的参数有值参数、变量参数和常量参数3种。

· 值参数 若参数定义为值参数,则函数的调用对实参的值没有影响。

· 变量参数(Var申明) 若参数定义为变量参数,则函数调用的结果对实参的值有影响。

· 常量参数(const 申明) 如果参数定义为常量参数,则当过程或函数执行时不改变形参的值。

如果当过程或函数执行时要求不改变形参的值,则最保险的办法是使用常量参数。在形式参数表的参数名称前加上保留字const可以使一个形参成为常量参数。

(2)作用域

1)全局变量是在主程序中定义的变量。

2)局部变量是在过程或函数中定义的变量。

全局变量对于整个程序均适用,局部变量只对定义它的过程或函数有效。

Object Pascal语言对于变量的作用域有如下约定:

1)在不同层次可以定义使用同名变量,但在同一层中1个变量只能定义1次。

2)同名变量在不同层次被定义时,代表不同的对象。执行内层程序时,外层的非局部变量虽然存在,却已经被屏蔽;而当程序从内层退出后,内层的局部变量就已经不存在,只有外层的那个非局部变量仍然存在。

需要注意的是,Delphi和其他一些语言不同,它的函数在返回值的时候并不中止函数本身,它总会执行到函数的最后一条语句。如果需要提前退出,可以用 Exit;语句。

Delphi 过程与函数的更多相关文章

  1. Delphi过程和函数中变量的作用域

    变量的作用域是指变量能被某一子程序识别的范围. 全局变量和局部变量.全局变量是指在程序的type区定义的变量,而局部变量是在过程或函数的定义部分声明的变量.全局变量在整个程序中都有意义,局部变量只在它 ...

  2. 【delphi】Delphi过程、函数传递参数的八种方式

    Delphi过程函数传递参数的八种方式

  3. Delphi过程函数传递参数的八种方式

    今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...

  4. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  5. Delphi之过程与函数

    过程以保留字procedure开始,没有返回值:函数以保留字function开始,有返回值. 参数位于括号里面,多个参数之间以分号分隔,例如: procedure SetDate(Year: Inte ...

  6. Delphi 使用之函数

    函数由一句或多句代码组成,可以实现某个特定的功能.使用函数可以使代码更加易读.易懂,加快编程速度及减少重复代码.过程与函数类似,过程与函数最重要的区别在于,过程没有返回值,而函数能有返回值.     ...

  7. Object Pascal 过程与函数

    过程与函数 过程与函数是实现一定功能的语句块,是程序中的特定功能单元.可以在程序的其他地方被调用,也可以进行递归调用.过程与函数的区别在于过程没有返回值,而函数有返回值. 1.过程与函数的定义 过程与 ...

  8. Delphi 常用API 函数

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconic ...

  9. Delphi 常用API 函数列表

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小AnyPopup 判断屏幕上是否存在任何弹出式窗口ArrangeIconicWi ...

随机推荐

  1. sqlite3常用命令&语法

    sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常不错的嵌入式数据库,SQLite大量的被用于手机,PDA,MP3播放器以及机顶盒设备.    Mozilla Firefox使用SQLit ...

  2. 三种常见设计模式 - Factory

    创建型模型 一.简单工厂模式 靠 if else 或者 select case 等分支去控制不同对象的创建,难以维护 二.工厂方法模式  Factory 实现方式:将创建对象的方法定义成一个接口,通过 ...

  3. 安装opencv以及遇到的坑

    参考这篇文章: http://www.tuicool.com/articles/36fMnem 还是国外的文章靠谱: http://docs.opencv.org/master/dd/dd5/tuto ...

  4. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B

    Description You are given a table consisting of n rows and m columns. Numbers in each row form a per ...

  5. placeholder 解决UITextField中placeholder和text文本同时显示的问题

    TextField都使用了placeholder属性,但在代码中又设置了text属性,因此ViewController会同时显示placeholder文本和text文本. 这个问题让我彻底崩溃.按道理 ...

  6. C#实现ActiveX控件开发与部署

    现在,我们手里已经有了这个控件包:QRCode.cab,下面我们编写一个测试的网页 <html> <head> <title>无标题页</title> ...

  7. File Checksum Integrity Verifier

    Microsoft (R) File Checksum Integrity Verifier V2.05 README file =================================== ...

  8. vsftp软链接ln遇到550错误

    centos 6.3上新建了vsftp ,用于文件下载使用 ./var/ftp/pub可以匿名登陆下载 .如果想要上传则需要使用密码验证 . 登陆使用的账号是ftpclient ,路径在/home/f ...

  9. DIV与IDIV的用法

    DIV (unsigned divide) 无符号数除法 格式:DIV SRC 执行的操作: 字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中.表示为 (AL) ...

  10. [SAP ABAP开发技术总结]ABAP读写、解析XML文件

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...