DelphiのオープンツールAPIから新しいユニット名をどのように取得しますか
質問
Delphi XEでウィザードを書いていますが、うまく機能しています。ただし、DelphiのOTAが作成できる生成されたデフォルトのユニット名(またはフォーム名またはプロジェクト名)にアクセスする方法はまだわかりません。
私の古いスタイルのウィザードでは、Toolservices.getNewModulenameを呼び出して、関連するソースファイルを生成するときに使用できる使用可能なユニットとフォーム名を見つけました。今日のオープンツールAPIに相当するものは何ですか?
Toolsapi Unitのコメントによると、IotamoduleCreator.getImplfileNameメソッドから空白を返して、Delphiにファイル名を生成させる必要があります。このメソッドから空の文字列を返していますが、Delphiが生成しているファイル名にアクセスできる場所をまだ確認できません。
解決
新しいフォームとユニット名を取得するための特定の方法があります。
(iotamoduleservicesとしてのborlandideervices).getNewModuleandClassName( ''、unitident、formName、filename);
私はいくつかの例で使用しましたが、それは正常に機能しているようです。
他のヒント
メソッドiotamodulecreator.newimplsourceには、「モジュール派」パラメーターがあり、ユニット名です。
私のテストでは、予想通りに機能します(ModuleIdent
パラメーター NewImplSource
メソッドは新しいユニット名を受信します)。特に次のことを確認してください。
IOTACreator.GetUnnamed
真実を返しますIOTACreator.GetExisting
falseを返しますIOTACreator.GetCreatorType
適切な識別子を返します(sUnit
,sForm
, など) - 私はこれについてはわかりませんが、それも重要かもしれません
ここ 作業例です。私はちょうどそれをチェックしましたが、コードはまだDelphi XEで期待どおりに機能しているようです。