エディタ インターフェイスを使用する
ファイルとエディタの処理 への移動
どのモジュールにもエディタ インターフェイスが少なくとも 1 つあります。 モジュールの中には、ソース ファイル(.pas)、フォーム記述ファイル(.dfm)など、複数のエディタを持つものがあります。 エディタはすべて IOTAEditor インターフェイスを実装します。エディタを特定の型にキャストすると、どのような種類のエディタであるかがわかります。 たとえば、ユニットのフォーム エディタ インターフェイスを取得する場合は、次のように記述できます。
{ Return the form editor for a module, or nil if the unit has no form. } function GetFormEditor(Module: IOTAModule): IOTAFormEditor; var I: Integer; Editor: IOTAEditor; begin for I := 0 to Module.ModuleFileCount - 1 do begin Editor := Module.ModuleFileEditors[I]; if Supports(Editor, IOTAFormEditor, Result) then Exit; end; Result := nil; end;
// Return the form editor for a module, or 0 if the unit has no form. _di_IOTAFormEditor __fastcall GetFormEditor(_di_IOTAModule module) { for (int i = 0; i < module->ModuleFileCount; ++i) { _di_IOTAEditor editor = module->ModuleFileEditors[i]; _di_IOTAFormEditor formEditor; if (editor->Supports(formEditor)) return formEditor; } return 0; }
エディタ インターフェイスを使用すると、エディタの内部状態にアクセスできます。 ユーザーが編集しているソース コードやコンポーネントの調査、ソース コード、コンポーネント、プロパティの変更、ソース エディタとフォーム エディタの選択の切り替えが可能で、エンド ユーザーが実行できるほとんどどのようなエディタ アクションでも実行できます。
フォーム エディタ インターフェイスを使って、ウィザードはフォーム上のすべてのコンポーネントにアクセスできます。 各コンポーネント(ルート フォームやデータ モジュールを含む)には、IOTAComponent インターフェイスが関連付けられています。 ウィザードでは、コンポーネントのほとんどのプロパティを調べたり変更することができます。 コンポーネントを完全に管理する必要がある場合は、IOTAComponent インターフェイスを INTAComponent にキャストできます。 ネイティブ コンポーネント インターフェイスを使用すると、ウィザードは TComponent ポインタに直接アクセスできます。 TFont などのクラス型プロパティの読み取りや変更が必要な場合には、このことが重要になります。こうした操作は、NTA 形式のインターフェイスを通じてのみ可能です。