一、例程:Delphi中独有的称呼,例程是将具体某个功能的代码进行封装表现形式:
  1、过程
  2、函数
  过程和函数的区别在于有没有返回值
二、例程的作用
  1、可以解决命名冲突问题
  2、提高代码的重复使用率
  3、提高代码可维护性
三、使用历程
  1、定义

 procedure Demo1();    //过程
begin end;

  函数的定义

 function Demo2(var a : Integer;var b : Integer) : Integer;  //函数
begin
Writeln(a,',',b);
end; {传递参数个数不固定(多个参数)}
procedure Demo3(const num1 : array of Integer);
var
X,Y : Integer;
begin end;

四、例程返回值

 1 {*------------------------------------------------------------------------------
2 一、什么是例程:Delphi中独有的称呼,例程是将具体某个功能的代码进行封装表现形式:
1、过程
2、函数
过程和函数的区别在于有没有返回值
二、例程的作用
1、可以解决命名冲突问题
2、提高代码的重复使用率
3、提高代码可维护性
三、怎么使用历程
1、定义 -------------------------------------------------------------------------------}
procedure Demo1(a : Integer;b : Integer); //过程,传值
begin
Writeln(a+b);
end; {*------------------------------------------------------------------------------
函数的定义
@return
-------------------------------------------------------------------------------}
function Demo2(var a : Integer;var b : Integer) : Integer; //过程,传地址
begin
Writeln(a+b);
end; {传递参数个数不固定(多个参数)}
procedure Demo3(const IntArray : array of Integer);
var
I : Integer;
begin
Writeln('----------------------------');
for I := Low(IntArray) to High(IntArray) do begin
Writeln(IntArray[I],#$);
end;
Writeln('数组长度为:',Length(IntArray));
end; var
a,b : Integer; begin
a := ;
b := ;
Demo1(a,b);
Demo2(a,b);
Demo3([,,,]);//数组传值
Readln;
end.
 {返回值:通过引用获取运算结果}
function Sub1(Num3 : Integer;Num4 : Integer;var sum : Integer) : Integer;
//var sum : Integer 传入地址
begin
sum := Num3 - Num4;
Exit;
end; var
Sum1 : Integer;
begin
Sub1(,,Sum1);
Writeln(Sum1);
Readln;
end.
 {返回值:out}
function mul(Num5:Integer;Num6:Integer;out sum:Integer):Integer;
begin
sum := Num5 * Num6;
Exit;
end;
var
sum : Integer;
begin
mul(,,sum);
Writeln(sum);
Readln;
end.
 {通过函数名称获取返回值}
function GetResultByFunName():Integer;
begin
GetResultByFunName := +;
end;
begin
Writeln(GetResultByFunName());
Readln;
end.
 {overload 函数重载:函数名相同,参数列表不同,使用关键字标识}
function Add(Num1 : Integer;Num2 : Integer;var sum : Integer) : Integer; overload;
begin
sum := Num1 + Num2;
Exit;
end; function Add(Num1 : Double;Num2 : Double;out sum : Double) : Double; overload; begin
sum := Num1 + Num2;
Exit;
end; var
// sum : Integer;
sum : Double;
begin
// Add(2,3,sum);
Add(2.4,2.02132,sum);
Writeln(sum);
Readln;
end.
 {forward 前置声明}
function DivFun() : Integer; forward; function MilFun() : Integer;
begin
DivFun();
end; function DivFun() : Integer;
begin
Writeln('test');
end;
begin
MilFun();
Readln;
end.

Delphi-基础(例程、例程返回值)的更多相关文章

  1. Python3基础 函数 未指定返回值,返回NONE

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. IRP完成例程返回值理解

    第一,完成例程里面直接返回STATUS_SUCCESS,这时候IRP已经继续向上回卷,失去了对IRP的控制. 第二,完成例程里面返回STATUS_MORE_PROCESSING_REQUIRED,仍具 ...

  3. SAP BW 例程(Routine)【开始例程、关键值或特性的例程、结束例程】

    定义 可以使用例程定义关键值或特性的复杂的转换规则. 例程是本地 ABAP 类,它们包括预定义的定义和实施范围.进站和出站参数的 TYPES及方法签名都存储在定义范围中.实际例程创建于实施范围中.使用 ...

  4. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  5. Delphi函数的返回值(注意这里与C/C++等语言有差异)

    在C/C++等语言中,函数执行到 return 部分之后,将立即停止函数的执行,并返回值 但是在Delphi中不同 函数中,执行到result时,并不同于比如 C/C++ 中的 return,跳出函数 ...

  6. Delphi检查GetElementByID返回值的有效性

    Delphi 可以像JavaScript 脚本语言一样使用GetElementByID方法访问网页中指定ID的元素,一般要配合TWebBrowser组件使用.首先使用TWebBrowser浏览网页,然 ...

  7. 终于懂了:Delphi消息的Result域出现的原因——要代替回调函数的返回值!(MakeObjectInstance不会帮助处理(接收)消息回调函数的返回值)

    MakeObjectInstance应该不会帮助处理(接收)消息回调函数的返回值,可是有时候又确实需要这个返回值,这可怎么办呢?我是看到这段文字的时候,想到这个问题的: 当WM_PAINT不是由Inv ...

  8. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  9. Delphi 模式窗体返回值ModalResult的使用方法及注意事项(转)

    1.基础知识简介: ModalResult是指一个模式窗体(form.showmodal)的返回值,一般用于相应窗体上按钮的ModalResult属性: 显示完窗体(关闭)后,会返回此属性预设的值做为 ...

随机推荐

  1. SpringBoot2.x项目pom.xml第一行报错

    原来使用的是2.1.4 后来改成2.1.3 保存自动从新下载就好了    毕竟使用人数多 maven地址:https://mvnrepository.com/artifact/org.springfr ...

  2. 解决汉化pycharme之后设置打不开的问题

    首先进入安装pycharme目录下lib目录下,将汉化包移出去,只留下英文包 然后打开pycharme即可打开设置 在你改完设置之后,可以再将汉化包放进来 英文包:https://pan.baidu. ...

  3. python3.5.3rc1学习五:模块

    #比较大小#name:maxNumber.py#比较两个数大小#C:\Users\Anthony\AppData\Local\Programs\Python\Python36-32\Lib\site- ...

  4. lstm和gru详解

    一.LSTM(长短期记忆网络) LSTM是一种特殊的RNN类型,一般的RNN结构如下图所示,是一种将以往学习的结果应用到当前学习的模型,但是这种一般的RNN存在着许多的弊端.举个例子,如果我们要预测“ ...

  5. Haproxy+Keepalived构建高可用负载均衡集群

    实验环境: 主机名 IP地址 VIP 192.168.200.254 Haproxy-1 192.168.200.101 Haproxy-2 192.168.200.102 Nginx1 192.16 ...

  6. vue项目搭建介绍01

    目录 vue项目搭建介绍01 vue 项目框架环境搭建: 创建项目: vue 项目创建流程: vue项目搭建介绍01 vue 项目框架环境搭建: vue 项目框架: vue django(类似)(vu ...

  7. IPv6 地址生命周期

    在preferred time和valid lifetime之间叫做deprecated 状态,当地址达到这个时间段的时候,地址不能主动的发起连接只能是被动的接受连接,过了valid lifetime ...

  8. Qt所有滚动条的样式

    const QString QSS_VerticalScrollBar = "" "QScrollBar:vertical{" //垂直滑块整体 "m ...

  9. Ansible 如何只输出错误信息?

    有时主机较多时,我们只想关注有问题的主机. Ansible callback 插件中有一个 actionable,官方描述为: actionable - shows only items that n ...

  10. ubuntu 安装rocketmq

    RocketMQ环境要求 ) 64bit OS,linux/Unix/Max ) 64bit JDK 1.8+ ) Maven 3.2.x ) Git 一.下载并构建 git clone https: ...