Създайте псевдоним за реферирано пространство от имена

В C# човек може да добави "псевдоним" към препратка. Например

using xyz = Microsoft.Office.Interop.Excel;

и тогава в кода може просто да се посочи класа като xyz.Method

Може ли да се направи нещо подобно в клаузата за използване на Delphi? напр.

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

Причината за запитването е, че и System.IOUtils, и FMX.Objects съдържат TPath, което означава, че трябва да се въведе пълното пространство от имена, ако се използват и двата класа. Би било полезно просто да имате псевдоним.


person Brendan    schedule 13.12.2013    source източник


Отговори (2)


Доколкото знам, можете да дефинирате псевдоними на единици само в Project Options. Това можете да зададете, ако го отворите през менюто Project / Options (или просто като натиснете CTRL + SHIFT + F11) и там на първата страница можете да посочите псевдоними на единици към колекцията Unit aliases за избраната целева конфигурация на компилация в формат alias=namespace.unit, както е показано на тази снимка:

въведете описание на изображението тук

person TLama    schedule 13.12.2013
comment
Трябва да дефинирате тези псевдоними в конфигурацията Base (а не Debug, както е на снимката). - person kludg; 13.12.2013
comment
@Serg, така е (въпреки че направих тази снимка само като илюстрация, казвайки, че е за избрана целева конфигурация за изграждане). Фиксиран; Благодаря! - person TLama; 13.12.2013

Ако искате да създадете псевдоним за тип (а не за цялото пространство от имена), можете да използвате следния код (написах го, за да обясня вашата ситуация)

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;

Типовете с псевдоними могат да бъдат декларирани в обща единица и включени навсякъде, където имате нужда.

person Daniele Teti    schedule 15.12.2013
comment
Благодаря - това също е добро решение, но предпочитам настройката на псевдоним на единица в опциите на проекта, както е описано от @TLama - person Brendan; 17.12.2013