与过程不同,函数是有返回值的子程序。一般通过函数名或者一个系统预定义的隐含变量Result返回函数的值。在Delphi中有内部函数和自定义函数两种函数。
标准函数:
标准函数的格式,用StrToInt这个函数类举例:
function StrToInt(const S:String):Interger;
表明该函数接受一个常量参数,并返回一个整型值。
自定函数:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
{
在这里定义了一个CalcFact的函数,函数的返回值是Int64。
} function CalcFact(Num:Integer):Int64; var i,Value:Integer; begin Value:=1; for i:=1 to Num do Value:=Value*i; Result:=Value; end;
{
在这里定义了一个GetSum的函数,返回值为Int64。
}
function GetSum(V1,V2:Integer):Int64; var SumV1,SumV2:Int64; begin SumV1:=CalcFact(V1);//名为CalcFact的函数在这里得到应用 SumV2:=CalcFact(V2); GetSum:=SumV1+SumV2; end;
procedure TForm1.Button1Click(Sender: TObject); Var Sum:Int64; Ed1,Ed2:Integer; begin if(edit1.Text='') or (edit2.Text='') then begin Application.MessageBox('请输入整数','提示:',MB_OK); exit; end; Ed1:=StrToInt(edit1.Text); Ed2:=StrToInt(edit2.Text); Sum:=GetSum(Ed1,Ed2);//GetSum的函数在这里得到应用 label1.Caption:=trim(edit1.Text)+'与'+trim(edit2.Text)+'的阶乘和为'+IntToStr(Sum); end;
procedure TForm1.Button2Click(Sender: TObject); begin close; end;
end.
源代码
|
请发表评论