Как получить новое имя модуля из API открытых инструментов Delphi - PullRequest
6 голосов
/ 16 ноября 2010

Я написал мастера в Delphi XE, и он работает нормально.Однако я еще не выяснил, как получить доступ к сгенерированному имени модуля по умолчанию (или имени формы или имени проекта), которое может создать OTA Delphi.

В моем мастере старого стиля мне удалось вызвать ToolServices.GetNewModuleNameнайти доступный модуль и имя формы, которые я мог бы использовать при создании связанных исходных файлов.Что эквивалентно в сегодняшнем API открытых инструментов?

Согласно комментариям модуля ToolsAPI, я должен вернуть пробел из метода IOTAModuleCreator.GetImplFileName, чтобы Delphi сгенерировал имя файла.Я возвращаю пустую строку из этого метода, но все еще не вижу, где я могу получить доступ к имени файла, который генерирует Delphi.

Ответы [ 3 ]

4 голосов
/ 18 ноября 2010

Существует специальный метод для получения новой формы и имени устройства:

(BorlandIDEServices as IOTAModuleServices) .GetNewModuleAndClassName ('', UnitIdent, FormName, FileName);

Я имеюиспользуется в нескольких примерах, и, кажется, работает нормально.

2 голосов
/ 17 ноября 2010

В моих тестах все работает как вы ожидали (параметр ModuleIdent в методе NewImplSource получает новое имя устройства).Проверьте вашу реализацию еще раз, особенно убедитесь, что:

  • IOTACreator.GetUnnamed возвращает True
  • IOTACreator.GetExisting возвращает False
  • IOTACreator.GetCreatorType возвращает соответствующий идентификатор (sUnit, sForm и т. Д.) - Я не уверен в этом, но это также может быть важно

Здесь - рабочий пример.Я только что проверил, и код все еще работает, как и ожидалось, в Delphi XE.

2 голосов
/ 16 ноября 2010

Метод IOTAModuleCreator.NewImplSource имеет параметр «ModuleIdent», это имя модуля.

...