Vla*_*lad 7 delphi scope procedures delphi-units
那么这个n00b问题,但我仍然无法弄清楚.我有单位main
与程序Discard()
.现在我有另一个单位engine
,我想从它Discard()
的单位程序运行main
.我有主要uses
部分engine.pas
.我试着打电话给程序,main.Discard()
但没有好处.我究竟做错了什么?
您需要将过程的签名放在界面中,如下所示:
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
Run Code Online (Sandbox Code Playgroud)
其他单位只能"看到"接口部分列出的内容.
在"Main"单元中,您在"interface"部分声明Discard:
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
Run Code Online (Sandbox Code Playgroud)
现在在单元"引擎"中,将"Main"添加到"uses"部分.
uses Main, ...
Run Code Online (Sandbox Code Playgroud)
多数民众赞成,你Discard(...)
现在可以打电话.如果有多个,Discard()
你可以通过使用明确地调用它 .Discard()
Main.Discard()