|
各位大侠,
小女子又有问题向你们请教了,我想使用自定义过程实现两个整数阶乘求和运算,但是在过程声明在单元的公共接口部分(Interface)中出了些问题,我不知道如何声明过程,请大家帮我看一下如下的代码,不甚感激!
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Label1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}procedure CalFact(Num:integer;var Value:int64);自定义过程定义在{$R*.dfm}的后面
var
i:integer;
begin
Value:=1;
for i:=1 to Num do
Value:=Value*i;
end;procedure GetSum(V1,V2:integer; var Sum:int64);自定义过程定义在{$R*.dfm}的后面
var
SumV1,SumV2:int64;
begin
SumV1:=0;SumV2:=0;
CalFact(V1,SumV1);
CalFact(V2,SumV2);
Sum:=SumV1+SumV2;
end;
{ TForm1 }
procedure TForm1.Label1Click(Sender: TObject);
begin
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);错误提示:Identifier not found "MB_OK"
exit;
end;
Sum:=0;
Ed1:=strtoint(edit1.Text);
Ed2:=strtoint(edit2.Text);
GetSum(Ed1,Ed2,Sum);
label3.Caption:=trim(Edit1.Text)+'与'+trim(Edit2.Text)+'的阶乘和为:'+inttostr(Sum);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end. |
|