Frage

Ich habe einen Assistenten in Delphi XE geschrieben, und es funktioniert gut. Allerdings habe ich noch nicht herausgefunden, wie die generierten Standardgerätenamen für den Zugriff auf (oder Formularnamen oder Projektnamen), dass Delphi OTA erstellen kann.

In meinem alten Stil-Assistent konnte ich ToolServices.GetNewModuleName nennen eine verfügbare Einheit und Formularnamen zu entdecken, dass ich verwenden könnte, wenn die zugehörigen Quelldateien zu erzeugen. Was ist das Äquivalent in der heutigen offenen Tools API?

Nach den ToolsAPI Einheit Kommentare, soll ich einen Rohling aus der IOTAModuleCreator.GetImplFileName Methode zurückkehrt haben Delphi die Dateinamen generieren. Ich bin eine leere Zeichenfolge von dieser Methode zurückkehrt, aber immer noch nicht sehen, wo ich den Namen der Datei zugreifen kann, dass Delphi Erzeugungs ist.

War es hilfreich?

Lösung

Es gibt eine spezifische Methode, eine neue Form und Einheit Name für immer:

(BorlandIDEServices als IOTAModuleServices) .GetNewModuleAndClassName ( '', UnitIdent, Formname, Dateiname);

Ich habe in einigen Beispielen verwendet, und es scheint zu funktionieren.

Andere Tipps

Das Verfahren IOTAModuleCreator.NewImplSource haben eine "ModuleIdent" parametter, es der Gerätename ist.

In meinen Tests, es funktioniert wie erwartet (ModuleIdent Parameter in NewImplSource Methode erhält den neuen Namen Einheit). Überprüfen Sie Ihre Implementierung wieder, vor allem sicherstellen, dass:

  • IOTACreator.GetUnnamed gibt Wahr zurück
  • IOTACreator.GetExisting Falsch zurück
  • IOTACreator.GetCreatorType gibt die entsprechende Kennung (sUnit, sForm, etc.) - Ich bin nicht sicher darüber, aber es könnte auch wichtig
  • sein

Hier ist ein funktionierendes Beispiel. Ich habe es gerade und der Code scheint noch zu funktionieren wie erwartet in Delphi XE.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top