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之过程与函数的更多相关文章
- Delphi 内部过程和函数
- Delphi 过程与函数
注:该内容整理自以下链接. http://chanlei001.blog.163.com/blog/static/340306642011111615445266/ delphi 过程以保留字proc ...
- Delphi过程和函数中变量的作用域
变量的作用域是指变量能被某一子程序识别的范围. 全局变量和局部变量.全局变量是指在程序的type区定义的变量,而局部变量是在过程或函数的定义部分声明的变量.全局变量在整个程序中都有意义,局部变量只在它 ...
- Object Pascal 过程与函数
过程与函数 过程与函数是实现一定功能的语句块,是程序中的特定功能单元.可以在程序的其他地方被调用,也可以进行递归调用.过程与函数的区别在于过程没有返回值,而函数有返回值. 1.过程与函数的定义 过程与 ...
- delphi的一个公用函数库
delphi的一个公用函数库 {********************************************** *** Name: PublicFunc; *** Author: l ...
- Delphi另一个多线程函数:BeginThread用法
Delphi另一个多线程函数:BeginThread━━━━━━━━━━━━━━━━━━━━━━━━━━ Delphi也提供了一个相同功能的类似函数:function BeginThread( ...
- Oracle过程及函数的参数模式,In、out、in out模式
Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...
- Delphi中使用@取函数地址的问题(转)
Delphi中使用@取函数地址的问题 例如以下代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes ...
- 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数
1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...
随机推荐
- 使用awk根据多维度统计系统tps
业务简单日志格式: [2017-08-28 01:00:00.523]transfer_search,7001045,1708271100083774377,20170827,,,,,,,,,,001 ...
- Java常用实体类
System类 访问系统属性 - 遍历 package org.zln.usefulclass.system; import java.util.Properties; /** * Created b ...
- C++中include<> 与 include" " 的区别
<>时先去系统目录中找头文件,如果没有再到当前目录下找.所以像标准的头文件 stdio.h, stdlib.h等都用<>; ""则首先到当前目录下找,如果找 ...
- [bzoj3218] a+b problem [最小割+数据结构优化建图]
题面 传送门 思路 最小割 我们首先忽略掉那个奇♂怪的限制,就有一个比较显然的最小割模型: 建立源点$S$和汇点$T$ 对于每个元素$i$建立一个点$i$,连边$<S,i,w[i]>$和$ ...
- div样式
DIV样式汇总 一.常用属性: 1.Height:设置DIV的高度. 2.Width:设置DIV的宽度. 例: <div style="width:200px;height:200px ...
- 回文后缀(suffix)
回文后缀(suffix) 题目描述 给定字符集大小 SS ,问有多少个长度为 NN 的字符串不存在长度 >1>1 的回文后缀. 答案对 MM 取模. 输入格式 第一行两个正整数 n, kn ...
- AGC007 - C Pushing Ball
Description 题目链接 懒得写详细题意了, 放个链接 \(n\le 2*10^5\) 个球, \(n+1\) 个坑, 排成数轴, 球坑交替. 相邻球-坑距离为等差数列 \(d\). 给定首项 ...
- linux -特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ...
- SJCL:斯坦福大学JS加密库
斯坦福大学Javascript加密库简称SJCL,是一个由斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全.快速.短小精悍.易使用.跨浏览器的JavaScript加密库.(斯坦福大学下载地址:h ...
- 汕头市队赛 SRM1X T2 ——扫描线
绵津见-终 SRM 13 背景 “西瓜也是可以种在海上的!”——绵津见 然而种在海上的西瓜最需要防范的,是时不时会涌向瓜田的阵阵海浪. 幸好,身为海神的绵津见可以释放魔法“水平如镜”来阻止海浪拍打西瓜 ...