1

我有问题。我会试着解释一下。

我有一个单元,它有一个类并且可能会有新的功能。

D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas

他们都有相同的类:IClass_1 = class

我使用此文件的不同版本的代码编号。

另一个单元文件 (UnitFile2.pas) 使用该单元文件 (UnitFile1.pas)。

此外,第二个单元文件 (UnitFile2.pas) 有不同的版本。

F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas

它们都具有相同的类: IClass_2 = class(IClass_1)

现在问题开始了;

“F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas”需要“D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas”

“14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas”需要“8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas”

但是文件名是相同的(我需要这样的系统。所以它们是相同的)。在单元文件中,delphi 不允许我这样写;

在文件 F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas; 在 'D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas' 中使用 UnitFile1;

我希望我能说出我的问题。我如何告诉编译器我想使用哪个单元文件及其路径?(我使用 Delphi-7)

4

4 回答 4

6

给您的单位名称不同的名称,然后您可以简单地在项目中包含这两个单位。

然后在您的项目选项中使用单位别名来创建一个“虚拟单位名称”,该名称可解析为这些实际单位中的一个或其他。在“使用”其中一个或其他的单元中,通过单元别名 - “虚拟名称”来引用它们。

例如在 dpr:

  uses
    ...
    UnitFile1a in '....\UnitFile1a.pas',
    UnitFile1b in '....\UnitFile1b.pas',
    ...

在您的单位:

   uses
     UnitFile1;

在您的项目选项中,单位别名是:

   UnitFile1=UnitFile1a

或者

   UnitFile1=UnitFile1b

然后,您可以使用任何“UnitFile1?”来构建您的项目。只需更改单位别名即可使用单位。

于 2010-01-20T20:54:26.830 回答
2

您必须配置项目选项以将“D3BF4E849ACC45249B990F802EFB1F15”和“F94C439C822E490DB228F2C16EF2C190”放在搜索路径中。您不能在代码中指定单元路径。

于 2010-01-02T17:53:21.070 回答
2

我不确定这是否能解决您的问题,但有命名空间的概念,它允许您将点放入单位名称中,如下所示:

而不是在不同的目录中具有相同的文件名...

D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas

您可以使用文件名前缀:

D3BF4E849ACC45249B990F802EFB1F15.UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E.UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190.UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF.UnitFile2.pas

然后,您可以在 uses 子句中使用完整的文件名,例如:

uses
  D3BF4E849ACC45249B990F802EFB1F15.UnitFile1;

是的,这适用于 Delphi 7。

于 2010-01-20T21:26:51.923 回答
0

据我所知,您不能将两个具有相同名称的单元添加到一个项目中。

您可以将正确的文件夹添加到项目选项中,或者您可以将必要的单元添加到“查看 - 项目管理器”屏幕(右键单击项目名称并选择“添加”。在正确的文件夹中选择正确的单元,然后从那时起,您可以在项目中的每个表单和其他单元中只使用单元名称。

为什么你要使用这种神秘的文件夹名称真的超出了我的范围。我想不出任何你想要这样做的理由。

于 2010-01-11T17:33:25.010 回答