在delphi下,如何调用其他单元的过程?

我在delphi下编写了一个测试程序,想通过单击单元Unit1的按钮,调用另一个单元(Unit2)里的过程(test),过程的功能是将一段字符串赋给单元Unit1里的la... 我在delphi下编写了一个测试程序,想通过单击单元Unit1的按钮,调用另一个单元(Unit2)里的过程(test),过程的功能是将一段字符串赋给单元Unit1里的label1.Caption。

但是编译后,显示:
Undeclared identifier:'test'
---------------------------------------------------------------------------------
具体代码如下:
Unit1的代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
test();
end;
end.
--------------------------------------------------------------------------------------
Unit2的代码:
unit Unit2;
interface
implementation
uses Unit1;
procedure test();
begin
form1.Label1.Caption:='这是由Unit2.pas传递过来的。';
end;
end.

--------------------------------------------------------------------------------------
project1.dpr 代码:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas';
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

--------------------------------------------------------------------------------------------------
请帮忙解答,问题错在哪里,谢谢!!
展开
 我来答
爱因为放手
2019-07-24
知道答主
回答量:68
采纳率:66%
帮助的人:12万
展开全部
project1.dpr 代码:
program Project1;
uses
    Forms,
    Unit2 in 'Unit2.pas',
    Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
    Application.Initialize;
    Application.MainFormOnTaskbar := True;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
end.
//将project1.dpr 代码改成这样应该可以啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
none_six
推荐于2016-02-20 · TA获得超过325个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:367万
展开全部
这需要在本单元中包含被调用单元。
公用函数就是这样的,你可以新建一个unit1,用开存放公用函数和过程。
然后让每个窗体都包含这个单元,这样就可以使用里面的函数或过程了。
调用时要以单元名.函数的格式,(unit1.show()).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d8783c9
2012-07-15 · 超过13用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:36.2万
展开全部
思路

1\定义公共变量 public ss:string, unit1中加上 uses unit2
2\另一个单元(Unit2)里的过程(test)的输出值赋给ss;
3\单元Unit1的按钮,调用时,取 ss
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ztw1122
推荐于2018-03-11 · TA获得超过1088个赞
知道小有建树答主
回答量:2382
采纳率:80%
帮助的人:943万
展开全部
TForm2 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure test();

像这样的 然后 form2.test(Sender: TObject);
追问
问题依旧
我编写的Unit2只是一个pas文件,不是窗体
追答
你仔细读教程就发现 
uses Unit2;
这样的不能放同一个地方
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
放到这个最后面
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ywhjp
2012-07-14 · TA获得超过1299个赞
知道小有建树答主
回答量:1002
采纳率:60%
帮助的人:432万
展开全部
要在test() 前面加unit2 或form2

写上 form2.test() 或 unit2.test() 你试试
更多追问追答
追问
写上unit2.test();
错误依旧
追答
procedure test();   在接口部分声明一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式