【问题标题】:Create an alias for a referenced namespace为引用的命名空间创建别名
【发布时间】:2013-12-13 15:32:32
【问题描述】:

在 C# 中,可以为引用添加“别名”。例如

using xyz = Microsoft.Office.Interop.Excel;

然后在代码中可以简单地将类称为 xyz.Method

可以在 Delphi uses 子句中做类似的事情吗?例如。

//This is just an example
uses
  System.IOUtils As xyz;

询问的原因是 System.IOUtils 和 FMX.Objects 都包含 TPath,这意味着如果使用这两个类,则需要输入完整的命名空间。简单地拥有一个别名会很有用。

【问题讨论】:

    标签: delphi firemonkey delphi-xe5


    【解决方案1】:

    据我所知,您只能在Project Options 中定义单位别名。如果您通过菜单 Project / Options 打开它(或者只需按 CTRL + SHIFT + F11),则可以设置此设置第一页您可以为所选目标构建配置指定Unit aliases 集合的单元别名,格式为alias=namespace.unit,如下图所示:

    【讨论】:

    • 您应该在Base 配置中定义这些别名(而不是图片上的Debug)。
    • @Serg,没错,(尽管我制作那张图片只是为了说明它用于“选定的目标构建配置”)。固定的;谢谢!
    【解决方案2】:

    如果你想为一个类型(而不是所有的命名空间)创建一个别名,你可以使用下面的代码(我写它是为了解释你的情况)

    uses
      System.IOUtils, FMX.Objects;
    
    procedure TForm1.FormCreate(Sender: TObject);
    type
      TIOPath = System.IOUtils.TPath;
      TFMXPath = FMX.Objects.TPath;
    var
      FMXPath: TFMXPath;
    begin
      ShowMessage(TIOPath.GetExtension('sample.txt'));
      FMXPath := TFMXPath.Create(self);
      try
        // Use the FMXPath
      finally
        FMXPath.Free;
      end;
    end;
    

    别名类型可以在一个公共单元中声明,并包含在您需要的任何地方。

    【讨论】:

    • 谢谢 - 这也是一个很好的解决方案,但我更喜欢 @TLama 所描述的项目选项中的单位别名设置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    相关资源
    最近更新 更多