Delphi面向对象的编程方法(三)

mn丶2

mn丶2

2016-01-29 14:01

Delphi面向对象的编程方法(三),Delphi面向对象的编程方法(三)
 

2.1.8.4 过程和函数的语句部分 

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

function CalculateInterest(Principal,InterestRate: Double):Double;

begin

CalculateInterest := Principal * InterestRate;

end; 

        将返回值赋给Result变量也是可以的,则上面的程序改为: 

Result := Principal*InterestRate;

下面是这个函数的调用方法:

InterestEarned :=CalculateInterest(2000,0.012);

         在Implementation后面的过程和函数,可以且只能被此库单元的事件处理过程使用。要让过程和函数可以被其他的程序库单元使用,则需要将过程或函数的标题部分放在库单元中的interface部分,而把含标题的整个过程或函数放在库单元的inplementation部分,并在要访问这个过程或函数的库单元的uses子句中加入说明这个过程或函数的库单元名称。 

2.1.8.5 函数的递归调用 

       在Object Pascal中,过程或函数必须先说明再调用。上文的NoValue函数必须在使用它的事件处理过程之前说明和执行,否则程序会报告一个未知标识符的错误。

         以上规则在递归调用时是例外情况。所谓递归调用,是指函数A调用函数B,而函数B又调用函数A的情况。在递归调用中,函数要进行前置,即在函数或过程的标题部分最后加上保留字forword。下文的例程是一个递归调用的典型例子: 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/delphi/)

implementation

var

alpha:Integer;

procedure Test2(var A:Integer):forword;

{Test2被说明为前置过程}

procedure Test1(var A:Integer);

begin

A :=A-1;

if A0 then

test2(A); { 经前置说明,调用未执行的过程Test2}

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/delphi/)

writeln(A);

end;

procedure Test2(var A:Integer);{ 经前置说明的Test2的执行部分}

begin

A :=A div 2;

if A0 rhen

test1(A); {在Test2中调用已执行的过程Test1}

end; 

procedure TForm1.Button1Click(Sender:TObject);

begin

Alpha := 15; { 给Alpha赋初值}

Test1(Alpha); { 第一次调用Test1, 递归开始}

end; 

           按钮的OnClick事件处理过程给Alpha赋初值,并实现先减1再除2的循环递归调用,直到Alpha小于0为止。 

2.1.8.6 过程和函数的参数 

        当您的程序代码在调用一个过程或函数时,通常用参数传递数据到被调用的过程或函数中。最常用的参数有数值参数、变量参数和常量参数三种。

         由被调用过程或函数定义的参数为形参,而由调用过程或函数指明的参数叫实参。在NoValue函数中,说明函数体中的AnEditBox是形参,而调用时在if NoValue(Edit1) …中,Edit1是实参。

         数值参数在运行过程中只改变其形参的值,不改变其实参的值,即参数的值不能传递到过程的外面。试看下面的例程: 

procedure Calculate(CalNo:Integer);

begin

CalNo := CalNo*10;

end; 

          用以下例程调用Calculate函数:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/delphi/)

Number := StrToInt(Edit1.Text);

Calculate(Number);

Edit2.Text

展开更多 50%)
分享

猜你喜欢

Delphi面向对象的编程方法(三)

Delphi
Delphi面向对象的编程方法(三)

Delphi面向对象的编程方法

编程语言 网络编程
Delphi面向对象的编程方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Delphi面向对象的编程方法(一)

Delphi
Delphi面向对象的编程方法(一)

Delphi面向对象的编程方法(二)

Delphi
Delphi面向对象的编程方法(二)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Delphi面向对象的编程方法(四)

Delphi
Delphi面向对象的编程方法(四)

Delphi面向对象编程的20条规则

Delphi
Delphi面向对象编程的20条规则

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《怪物猎人X》确定出现的怪物一览

《怪物猎人X》确定出现的怪物一览

文件管理(三)

文件管理(三)
下拉加载更多内容 ↓