函数(functions)和过程(procedures)【一】

函数过程是独立于主程序的代码段,在程序中,当需要完成一些特定动作时,这些代码段就会被执行。在整个程序中可以任意次调用这些函数。

Delphi中的例程有两种形式:过程(procedures)函数(functions)

过程是你要求计算机执行的操作;函数是能返回值的计算。两者突出的不同点在于函数能返回计算结果,即有一个返回值,而过程没有。

通过编写一个函数的范例,先来大概了解了解。

1、新建一个Application

2、Form1窗体上放置一个Button组件(btn1)和一个Label组件(lbl1),如下图:

0036

3、Code Editor中的implementation段中输入下面的代码:

...

var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure SayHello;

begin

  ShowMessage('Hello, World');

end;



function Multiply(Num1, Num2: Integer): Integer;

begin

  Result := Num1 * Num2;

end;



end.

4、然后在Form Designer中双击btn1建立一个OnClick事件处理程序,输入如下代码:

procedure TForm1.btn1Click(Sender: TObject);

var

  X: Integer;

begin

  X := Multiply(10, 20);       //调用Multiply函数,返回10*20的结果给X

  lbl1.Caption := IntToStr(X); //在label标签中显示结果200

  SayHello;                    //调用SayHello过程

end;

5、运行程序F9并点击按钮,结果中标签将变为200,并显示Hello, World对话框信息,结果如下:

0037

6、其整个工作流程如下:

当点击按钮后,调用btn1Click事件处理程序,这样就会继续Multiply函数,并以10和20为传递参数,结果放在X变量中,并在lbl1标签中显示出来。

7、每一个函数都有一个名为Result的局部变量,这个变量时由编译器以不可视方式加以声明,并且它是用来保存函数的返回值,因此为了从函数中返回一个指定的值,只需要把这个值赋值给函数中的Result变量即可。

8、函数的调用有多种方法,传递的变量可以是直接的数值,也可以是其他函数调用结果,以下都是正确的调用形式:

  X := Multiply(2, 5);  { 直接传递数值}

  X := Multiply(A, B);  { 传递变量A和B}

  lbl1.Caption := IntToStr(Multiply(X, Y)); { 返回值用作另一个函数的参数}

  Multiply(X, Y); { 返回值无效}

Tip

  • 只要在程序中多次重复使用一段代码,就可以把这段代码移到一个子程序中。这样在程序中需要这段代码的地方都就可以调用此子程序。
  • 如果不需要返回值,函数也可以当做过程一样调用。
  • 当函数和过程没有参数时,可以直接使用名字调用,而不需要加“()”这个空括号。如例子中的SayHello调用。

你可能感兴趣的:(procedure)