Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 2233|回复: 3

自定义过程的创建和使用

[复制链接]

该用户从未签到

发表于 2012-7-19 15:04:03 | 显示全部楼层 |阅读模式
各位大侠,
小女子又有问题向你们请教了,我想使用自定义过程实现两个整数阶乘求和运算,但是在过程声明在单元的公共接口部分(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.                        
回复

使用道具 举报

该用户从未签到

发表于 2012-7-20 07:39:32 | 显示全部楼层
在uses語句內加上windows單元試試.....

或是把application.MessageBox('请输入整数','提示',MB_OK);
改成showmessage('请输入整数','提示');

有點好奇您是看哪本書學的?感覺上好像是很"正統"的Pascal書(像是Turbo Pascal 那個時期的).......其實Lazarus/Free Pascal最大的好處是函式庫和Delphi高度兼容,也就是說教學或幫助文件很多都通用,像我在用的時候遇到不會的,有不少是上網找delphi的資料學習.......這種作法說不定您也可以參考看看
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2012-7-22 17:46:57 | 显示全部楼层

回 1楼(chenyuchih) 的帖子

chenyuchih:在uses語句內加上windows單元試試.....

或是把application.MessageBox('请输入整数','提示',MB_OK);
改成showmessage('请输入整数','提示');

....... (2012-07-20 07:39) 
Thanks a lot!!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-7-23 01:18:59 | 显示全部楼层
作为回报,你应该kiss他一下。。
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-3 11:06 , Processed in 0.026601 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表