7 Stimmen

Wie können Sie einen neuen Gerätenamen aus der Open Tools API von Delphi abrufen?

Ich habe einen Assistenten in Delphi XE geschrieben, und er funktioniert gut. Ich habe jedoch noch nicht herausgefunden, wie auf den generierten Standardmodulnamen (oder Formnamen oder Projektnamen) zugegriffen werden kann, den Delphis OTA erstellen kann.

In meinem alten Assistenten im alten Stil konnte ich ToolServices.GetNewModuleName aufrufen, um einen verfügbaren Einheits- und Formnamen zu entdecken, den ich beim Generieren der zugehörigen Quelldateien verwenden konnte. Was ist das Äquivalent in der heutigen Open Tools API?

Laut den Kommentaren der ToolsAPI-Einheit sollte ich eine leere Zeichenkette aus der Methode IOTAModuleCreator.GetImplFileName zurückgeben, damit Delphi den Dateinamen generiert. Ich gebe eine leere Zeichenfolge aus dieser Methode zurück, kann aber immer noch nicht sehen, wo ich den Dateinamen abrufen kann, den Delphi generiert.

4voto

Marco Cantù Punkte 1195

Es gibt eine spezifische Methode, um einen neuen Formular- und Modulnamen zu erhalten:

(BorlandIDEServices als IOTAModuleServices).GetNewModuleAndClassName( '', UnitIdent, FormName, FileName);

Ich habe es in ein paar Beispielen verwendet und es scheint gut zu funktionieren.

2voto

Henri Gourvest Punkte 979

Die Methode IOTAModuleCreator.NewImplSource hat einen "ModuleIdent"-Parameter, der der Modulname ist.

2voto

Ondrej Kelle Punkte 36511

In meinen Tests funktioniert es wie erwartet (ModuleIdent-Parameter in der Methode NewImplSource erhält den neuen Modulnamen). Überprüfen Sie Ihre Implementierung erneut, stellen Sie insbesondere sicher, dass:

  • IOTACreator.GetUnnamed True zurückgibt
  • IOTACreator.GetExisting False zurückgibt
  • IOTACreator.GetCreatorType den entsprechenden Bezeichner zurückgibt (sUnit, sForm, etc.) - Ich bin mir nicht sicher, aber das könnte ebenfalls wichtig sein

Hier finden Sie ein funktionierendes Beispiel. Ich habe es gerade überprüft und der Code scheint immer noch in Delphi XE wie erwartet zu funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X