Domanda

Ho scritto un mago in Delphi XE, e sta funzionando benissimo. Tuttavia, non ho ancora capito come accedere il nome generato predefinito unità (o nome del modulo o il nome del progetto), che OTA di Delphi può creare.

Nel mio vecchio-stile wizard sono stato in grado di chiamare ToolServices.GetNewModuleName alla scoperta di un'unità e la forma nome disponibile che potrei usare quando si generano i file di origine associati. Qual è l'equivalente in di oggi strumenti open API?

Secondo i commenti di unità ToolsAPI, mi dovrebbe restituire un vuoto dal metodo IOTAModuleCreator.GetImplFileName avere Delphi generare il nome del file. Sto tornando una stringa vuota da questo metodo, ma ancora non può vedere dove posso accedere al nome del file che Delphi è di generazione.

È stato utile?

Soluzione

C'è un metodo specifico per ottenere una nuova forma e unità nome:

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

che ho usato in alcuni esempi e sembra funzionare bene.

Altri suggerimenti

Il metodo IOTAModuleCreator.NewImplSource hanno un parametter "ModuleIdent", è il nome dell'unità.

Nel mio test, funziona come vi aspettavate (parametro ModuleIdent nel metodo NewImplSource riceve il nuovo nome dell'unità). Controllare nuovamente l'implementazione, in particolare verificare che:

  • ritorna IOTACreator.GetUnnamed True
  • ritorna IOTACreator.GetExisting False
  • IOTACreator.GetCreatorType restituisce l'identificatore appropriato (sUnit, sForm, ecc) - Non sono sicuro di questo, ma potrebbe essere importante, anche

Ecco è un esempio di lavoro. Ho appena controllato e il codice sembra ancora al lavoro come previsto in Delphi XE.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top