gpt4 book ai didi

delphi - Delphi中如何通过ToolsAPI获取模块的结构?

转载 作者:行者123 更新时间:2023-12-03 15:49:11 25 4
gpt4 key购买 nike

我想通过ToolsAPI获取模块(pascal单元)的结构信息。就像 IDE 的结构 View 一样。

类、记录、接口(interface)、变量/常量等成员、参数等

是否已经有一种简单有效的方法来获取这些元数据?

最佳答案

据我所知,无法查询给定文件的特殊结构化信息。

您可以做的是访问“结构” Pane 中的信息。这种方式要求文件是事件模块(可以通过 OTA 实现),输出取决于结构 Pane 设置(工具 | 选项... -> 环境选项 | 资源管理器),如果节点是字段,则程序或任何需要确定图像索引、父级...

此代码遍历“结构” Pane 。

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;

关于delphi - Delphi中如何通过ToolsAPI获取模块的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3074431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com