过程以保留字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之过程与函数的更多相关文章

  1. Delphi 内部过程和函数

  2. Delphi 过程与函数

    注:该内容整理自以下链接. http://chanlei001.blog.163.com/blog/static/340306642011111615445266/ delphi 过程以保留字proc ...

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

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

  4. Object Pascal 过程与函数

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

  5. delphi的一个公用函数库

    delphi的一个公用函数库 {********************************************** ***  Name: PublicFunc; ***  Author: l ...

  6. Delphi另一个多线程函数:BeginThread用法

    Delphi另一个多线程函数:BeginThread━━━━━━━━━━━━━━━━━━━━━━━━━━ Delphi也提供了一个相同功能的类似函数:function BeginThread(    ...

  7. Oracle过程及函数的参数模式,In、out、in out模式

    Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...

  8. Delphi中使用@取函数地址的问题(转)

    Delphi中使用@取函数地址的问题   例如以下代码:unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes ...

  9. 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数

      1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...

随机推荐

  1. c# 对XML 解析 和 序列化

    /// <summary> /// 解析XML 数据 /// </summary> /// <param name="re"></para ...

  2. Python函数参数中的冒号与箭头

    在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西? 其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型.函数 ...

  3. linux上的vim永久显示行号

    步骤1: cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc 步骤2: vi ...

  4. 第二届360杯全国大学生信息安全技术大赛部分解题思路(WEB安全)

    第一题如下: 用burpsuit设置好代理后,点击发送验证码,可以看到如下: 然后go之后可以看到如下的验证码: 提交验证码后即可获得key 第二题如下: 通过/data/mysql_error_tr ...

  5. CAN帧格式(标准帧、拓展帧)

    CAN2.0B标准帧 CAN 标准帧信息为11个字节,包括两部分:信息和数据部分.前3个字节为信息部分. 位置 7 6 5 4 3 2 1 0 字节01 FF RTR × × DLC(数据长度) 字节 ...

  6. PHP高性能开发-多进程开发

    硬件多核时代的软件业以前计算能力的提升一直在摩尔定律的指引下,沿着提升CPU时钟频率这条道路前进,从初期的几十MHz到如今的几GHz.但是,进入2002年以 来,CPU提升主频的困难越来越大,因为主频 ...

  7. (计数器)NOIP模拟赛(神奇的数位DP题。。)

    没有原题传送门.. 手打原题QAQ [问题描述]     一本书的页数为N,页码从1开始编起,请你求出全部页码中,用了多少个0,1,2,…,9.其中—个页码不含多余的0,如N=1234时第5页不是00 ...

  8. 更改了mysql的配置文件之后,启动不了mysql服务

    更改了mysql的配置文件之后,启动不了mysql服务 mysql数据库error: Found option without preceding group in config file 问题解决 ...

  9. CodeSmith Professional 5与VS2010有冲突

    最近VS2010莫名其妙无法正常使用了,新建工程和打开工程就提示“Microsoft Visual Studio发生问题需要关闭”的错误提示,然后就是重新启动VS2010,最后经过分析和查证,确定是某 ...

  10. Selenium2+python自动化4-Pycharm使用【转载】

    前言 在写脚本之前,先要找个顺手的写脚本工具.python是一门解释性编程语言,所以一般把写python的工具叫解释器.写python脚本的工具很多,小编这里就不一一列举的,只要自己用着顺手就可以的, ...