Создайте псевдоним для указанного пространства имен

В 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, что означает, что нужно ввести полное пространство имен, если используются оба класса. Было бы полезно иметь просто псевдоним.


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