Как получить новое название устройства от Delphi's Open Tools API
Вопрос
Я написал волшебник в Delphi XE, и он работает нормально. Тем не менее, я еще не понял, как получить доступ к сгенерированному имени блока по умолчанию (или имя формы или имя проекта), которое может создать OTA Delphi.
В своем мастере старого стиля я смог позвонить в Toolservices.getNewModulename, чтобы обнаружить доступное устройство и имя формы, которое я мог бы использовать при генерации соответствующих исходных файлов. Что эквивалентно в сегодняшнем API Open Tools?
Согласно комментариям устройства ToolsAPI, я должен вернуть бланк из метода йотамодулекриатора.getimplfilename, чтобы Delphi генерировал имя файла. Я возвращаю пустую строку из этого метода, но все еще не вижу, где я могу получить доступ к имени файла, которое генерирует Delphi.
Решение
Существует конкретный метод получения новой формы и названия блока:
(BorlandideServices как йотамодулевики). GetNewModuleAndClassName ('', Unitident, FormName, имя файла);
Я использовал в нескольких примерах, и, кажется, работает нормально.
Другие советы
Метод iotamodulecreator.newimplsource имеет параметров «модулиидов», это имя блока.
В моих тестах это работает, как вы ожидали (ModuleIdent
параметр в NewImplSource
Метод получает новое имя блока). Проверьте свою реализацию еще раз, особенно убедитесь, что:
IOTACreator.GetUnnamed
Возвращает правдаIOTACreator.GetExisting
возвращает ложьIOTACreator.GetCreatorType
возвращает соответствующий идентификатор (sUnit
,sForm
, и т. д.) - я не уверен в этом, но это тоже может быть важно
Здесь это рабочий пример. Я только что проверил это, и код, кажется, все еще работает, как и ожидалось в Delphi XE.