如何在一个表单中引用另一个表单中定义的过程、函数?(50分)

  • 主题发起人 zhaojingang
  • 开始时间
Z

zhaojingang

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个文件(表单)中如何引用(调用)另一个表单中的函数、过程?请赐教
 
程序一中:(Unit1)
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
function Sum(var i,j:integer):integer;//函数
procedure Msg(var s:string); //过程
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Msg(var s: string);
begin
showmessage(s);
end;

function TForm1.Sum(var i, j: integer): integer;
begin
result:=i+j;
end;

end.

程序二中:(Unit2)
unit2
...
implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
s:string;
i,j,sum:integer;
begin
//函数
i:=3;j:=5;
sum:=Form1.Sum(i,j);
showmessage(inttostr(sum));
//过程
s:='你好呀!';
form1.Msg(s);
end;

end.
 
随便那本delphi的书中都有这方面的章节,看看便知
 
可是在unit1 public中不能定义过程函数出错,不知道是什么原因,请指教

 
是不是你在public中还定义了变量,
变量的定义要在函数和过程之前的
 
谢谢大家,特别是春意! ok!
 
不要做成类的函数,做成普通的。

程序一中:(Unit1)
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

function Sum(var i,j:integer):integer;//函数
procedure Msg(var s:string); //过程

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure Msg(var s: string);
begin
showmessage(s);
end;

function Sum(var i, j: integer): integer;
begin
result:=i+j;
end;

end.

程序二中:(Unit2)
unit2
...
implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
s:string;
i,j,sum:integer;
begin
//函数
i:=3;j:=5;
sum:=Sum(i,j);
showmessage(inttostr(sum));
//过程
s:='你好呀!';
Msg(s);
end;
 
顶部