Как получить новое имя модуля из API открытых инструментов Delphi
Я написал мастера в Delphi XE, и он работает нормально. Однако я еще не выяснил, как получить доступ к сгенерированному имени модуля по умолчанию (или имени формы или имени проекта), которое может создать OTA Delphi.
В моем мастере старого стиля я смог вызвать ToolServices.GetNewModuleName, чтобы обнаружить доступный модуль и имя формы, которые я мог бы использовать при создании связанных исходных файлов. Что является эквивалентом в сегодняшнем API открытых инструментов?
Согласно комментариям модуля ToolsAPI, я должен вернуть пробел из метода IOTAModuleCreator.GetImplFileName, чтобы Delphi сгенерировал имя файла. Я возвращаю пустую строку из этого метода, но все еще не вижу, где я могу получить доступ к имени файла, который генерирует Delphi.
3 ответа
Существует специальный метод получения новой формы и имени модуля:
(BorlandIDEServices as IOTAModuleServices).GetNewModuleAndClassName ('', UnitIdent, FormName, FileName);
Я использовал в нескольких примерах, и, кажется, работает нормально.
Метод IOTAModuleCreator.NewImplSource имеет параметр "ModuleIdent", это имя модуля.
В моих тестах все работает как вы ожидали (ModuleIdent
параметр в NewImplSource
метод получает новое имя модуля). Проверьте вашу реализацию еще раз, особенно убедитесь, что:
IOTACreator.GetUnnamed
возвращает TrueIOTACreator.GetExisting
возвращает ЛожьIOTACreator.GetCreatorType
возвращает соответствующий идентификатор (sUnit
,sForm
и т. д.) - Я не уверен в этом, но это тоже может быть важно
Вот рабочий пример. Я только что проверил это, и код все еще работает, как и ожидалось, в Delphi XE.