如何实现一个局部函数与过程

开发 开发工具
我们今天要谈到的是如何实现一个局部函数与过程,局部过程和函数的一个重要性质就是过程和函数中所包含的变量在局部子程序中也有效。

  定义在函数和过程内部的函数和过程称为局部函数和过程(子程序),子程序只在母过程内部有效。

  下面我们来看看如何实现一个局部函数和过程的定义和使用。

  1、新建一个Application

  2、Form1窗体上放置一个Memo组件(Memo1)和两个Button组件(Button1Button2)。

  3、双击Button1按钮,在Button1Click事件中输入以下代码:

  procedure TForm1.Button1Click(Sender: TObject);

 

  1.   var  
  2.   X: Integer;  
  3.   {a local procedure}  
  4.   procedure Test;  
  5.   begin  
  6.   Memo1.Lines.Add('Local Function, X = ' + IntToStr(X));  
  7.   end;  
  8.   begin  
  9.   X := 100;  
  10.   Memo1.Lines.Clear;  
  11.   Memo1.Lines.Add('Main Function, X = ' + IntToStr(X));  
  12.   Test;  
  13.   end; 

 

  4、双击Button2按钮,在Button2Click事件中输入以下代码:

 

  1.   procedure TForm1.Button2Click(Sender: TObject);  
  2.   begin  
  3.   Test; { 因为Test是在Button1Click中定义的,因此会报错}  
  4.   end; 

 

  5、Ctrl + F9编译该项目,会发现报出以下错误:Undeclared identifier: 'Test’(未定义的标识符)

  6、注释掉Button2Click中的Test过程的调用,然后重新编译运行,并点击Button1按钮后,结果如下:

分析

  Test过程包含在Button1Click过程的var段中,用这种方法声明的过程就是局部过程,它只局限于包含它的函数和过程。局部子程序只能被包含它的例程所调用,而在程序的其他地方时不能调用的。所以在Button2Click过程中无法实现Test的调用。

  局部过程和函数的一个重要性质就是过程和函数中所包含的变量在局部子程序中也有效,如上面的范例Memo1中显示的两次X变量的值都是100,说明X变量不但在Button1Click中可用,也可以再它的子过程Test中使用。

  以上程序均在Delphi7中编译通过。

原文:http://www.cnblogs.com/pchmonster/archive/2011/12/22/2298705.html

【编辑推荐】

  1. 什么时候学习编程都不晚
  2. 函数式编程很难,这正是你要学习它的原因
  3. 编程技术面试的五大要点
  4. 论编程语言的可读性:老语言更通俗易懂
  5. 敲击最多的键和编程语言语法

 

责任编辑:彭凡 来源: 博客园
相关推荐

2011-03-28 09:56:03

存储增删操作

2017-12-12 15:24:32

Web Server单线程实现

2023-02-26 01:37:57

goORM代码

2023-03-01 09:39:40

调度系统

2020-08-17 08:20:16

iOSAOP框架

2010-04-15 17:45:26

Oracle存储过程

2018-07-30 16:31:00

javascriptaxioshttp

2022-03-14 10:02:03

散列表链表哈希表

2020-05-19 10:45:31

沙箱前端原生对象

2022-10-20 11:00:52

SQL解析器

2021-05-27 09:50:03

连接池FTP服务器

2016-09-06 19:45:18

javascriptVue前端

2016-09-28 17:34:27

JavaScriptvueWeb

2022-03-24 14:58:02

Java散列表编程语言

2021-01-26 10:33:45

前端开发技术

2021-01-04 09:12:31

集合变量

2009-06-09 21:50:55

Javascript函数getStyle

2021-04-30 08:22:36

异步求和函数

2017-08-11 17:55:48

前端JavaScript模板引擎

2017-03-20 17:59:19

JavaScript模板引擎
点赞
收藏

51CTO技术栈公众号