7

Delphi XEでウィザードを作成しましたが、正常に機能しています。ただし、DelphiのOTAが作成できる、生成されたデフォルトのユニット名(またはフォーム名やプロジェクト名)にアクセスする方法はまだわかりません。

古いスタイルのウィザードでは、ToolServices.GetNewModuleNameを呼び出して、関連するソースファイルを生成するときに使用できる使用可能なユニットとフォーム名を見つけることができました。今日のオープンツールAPIに相当するものは何ですか?

ToolsAPIユニットのコメントによると、Delphiにファイル名を生成させるには、IOTAModuleCreator.GetImplFileNameメソッドから空白を返す必要があります。このメソッドから空の文字列を返していますが、Delphiが生成しているファイル名にアクセスできる場所がわかりません。

4

3 に答える 3

4

新しいフォームとユニット名を取得する特定の方法があります。

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

いくつかの例で使用しましたが、うまく機能しているようです。

于 2010-11-18T14:47:35.423 に答える
2

メソッド IOTAModuleCreator.NewImplSource には「ModuleIdent」パラメータがあり、これはユニット名です。

于 2010-11-16T16:45:34.033 に答える
2

私のテストでは、期待どおりに動作します(メソッドのModuleIdentパラメーターNewImplSourceは新しいユニット名を受け取ります)。実装をもう一度確認してください。特に次のことを確認してください。

  • IOTACreator.GetUnnamedTrue を返します
  • IOTACreator.GetExistingFalse を返します
  • IOTACreator.GetCreatorType適切な識別子 ( sUnitsFormなど) を返します - これについてはよくわかりませんが、これも重要かもしれません

これが実際の例です。確認したところ、コードは Delphi XE で期待どおりに動作しているようです。

于 2010-11-17T14:26:38.543 に答える