Pregunta

He escrito un asistente en Delphi XE, y está funcionando bien. Sin embargo, no he descubierto aún cómo acceder el nombre predeterminado generado unidad (o el nombre de la forma o el nombre del proyecto) que la OTA de Delphi puede crear.

En mi viejo mago-estilo pude llamar ToolServices.GetNewModuleName para descubrir una unidad de forma y nombre disponible que podría utilizar al generar los archivos de origen asociados. ¿Cuál es el equivalente en la API de herramientas abiertas de hoy?

De acuerdo con los comentarios de la unidad ToolsAPI, que debe devolver una pieza en bruto a partir del método IOTAModuleCreator.GetImplFileName tener Delphi generar el nombre de archivo. Estoy regresando una cadena vacía de este método, pero todavía no puede ver donde Puedo acceder al nombre de archivo que Delphi es generadora.

¿Fue útil?

Solución

Hay un método específico para conseguir una nueva forma y la unidad Nombre:

(BorlandIDEServices como IOTAModuleServices) .GetNewModuleAndClassName ( '', UnitIdent, FormName, filename);

He usado en unos pocos ejemplos y parece que funcionan bien.

Otros consejos

El método IOTAModuleCreator.NewImplSource tiene un parametter "ModuleIdent", es el nombre de la unidad.

En mis pruebas, funciona como se esperaba (parámetro ModuleIdent en el método NewImplSource recibe el nuevo nombre de la unidad). Compruebe su aplicación de nuevo, especialmente asegúrese de que:

  • retornos IOTACreator.GetUnnamed verdadera
  • retornos IOTACreator.GetExisting false
  • IOTACreator.GetCreatorType devuelve el identificador apropiado (sUnit, sForm, etc.) - No estoy seguro de esto, pero podría ser importante, también

Aquí es un ejemplo de trabajo. Acabo de comprobar que el código y todavía parece que funciona como se esperaba en Delphi XE.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top