如何从另一个单位运行程序?

时间:2009-09-11 13:51:33

标签: delphi scope procedures delphi-units

那么这个n00b问题,但我仍然无法弄清楚。我的单元main中包含过程Discard()。现在我有另一个单位engine,我希望从单位Discard()的过程main开始运行。我在uses的{​​{1}}部分有主要内容。我试图用engine.pas调用程序,但没有好处。我做错了什么?

2 个答案:

答案 0 :(得分:6)

您需要将程序的签名放在界面中,如下所示:

unit main;

interface

procedure Discard();

implementation

procedure Discard();
begin
//do whatever
end;

其他单位只能“看到”界面部分列出的内容。

答案 1 :(得分:5)

在单位“Main”中,您在“interface”部分声明Discard:


unit Main;

interface

uses ...

procedure Discard (...); // only the declaration, not the entire procedure

implementation

... // code

现在在单位“引擎”中,您将“主要”添加到“使用”部分。

uses Main, ...

多数民众赞成,您现在可以致电Discard(...)。如果有多个Discard(),您可以使用Discard()明确地拨打 Main.Discard()