Pascal:将模块完全导入当前范围

时间:2012-11-18 01:23:17

标签: scope pascal freepascal uses

更多Pascal困境。

假设我有2个单位,MainUnitExampleClass

MainUnit:

Unit MainUnit;

interface

Uses ExampleClass;

function ReturnFive: Integer;

implementation

function ReturnFive: Integer;
begin
  ReturnFive := 5;
end;

begin
end.

ExampleClass中:

Unit ExampleClass;

{$mode objfpc}

interface

type 
  ClassThing = Class
    SampleValue: Integer;
  end;


implementation

begin
end.

现在,我只想导入MainUnit,但仍然可以使用ClassThingMainUnit uses ExampleClass,但导入ClassThingMainUnit无法使用。

我真的不想use ExampleClassMainUnit,我更愿意将其保留在一个uses声明中。

你是怎么做到的?

1 个答案:

答案 0 :(得分:1)

type ClassThing = ExampleCLass.ClassThing;
在mainunit的界面中

这个原则也适用于consts,但只适用于“真实”原则(不是更多初始化变量的类型):

const myconst = unitname.myconst;

几乎所有常用的类型都是类似的别名,因此我可以轻松地在定义它们的地方移动,而无需更改所有商业代码单元中的uses子句