函数(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调用。
原文地址:https://www.cnblogs.com/pchmonster/p/2296323.html