DelphiのToolsapiによってモジュールの構造を取得するにはどうすればよいですか?
質問
Toolsapiによってモジュール(Pascalユニット)の構造情報を取得したいと思います。 IDEの構造ビューと同じように。
クラス、レコード、インターフェイス、変数/定数などのメンバー、パラメーターなど。
これらのメタデータを取得する簡単で効率的な方法はすでにありますか?
解決
たぶん使用してください パーサー それほど悪い考えではありませんか?
他のヒント
AFAIK特定のファイルの特別な構造化された情報を照会する方法はありません。
できることは、構造ペイン内の情報にアクセスすることです。この方法では、ファイルがアクティブモジュール(OTAによって達成できます)である必要があり、出力は構造ペイン設定(ツール|オプション... - >環境オプション|エクスプローラー)に依存し、ノードがフィールドである場合、手順または画像インデックスを介して決定する必要があるもの、親...
このコードは、構造ペインを通り抜けます。
procedure StructureViewToSL(ASL: TStringList);
procedure TreeToSL(ANode: IOTAStructureNode; ASL: TStringList; const APrefix: string);
var
I: Integer;
begin
ASL.Add(APrefix + ANode.Caption);
for I := 0 to ANode.ChildCount - 1 do
TreeToSL(ANode.Child[I], ASL, APrefix + ' ');
end;
var
StructureView: IOTAStructureView;
StructureContext: IOTAStructureContext;
Node: IOTAStructureNode;
I: Integer;
begin
StructureView := BorlandIDEServices as IOTAStructureView;
StructureContext := StructureView.GetStructureContext;
for I := 0 to StructureContext.RootNodeCount - 1 do
begin
Node := StructureContext.GetRootStructureNode(I);
TreeToSL(Node, ASL, '');
end;
end;
所属していません StackOverflow