问题标签 [toolsapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1426 浏览

delphi - 如何从 IOTAProject 获取主要源文件名?

至少从 D2007 开始,项目文件可以有一个具有不同基本名称的主源文件。DevExpress 演示利用了这一点:例如,有一个 dpr 文件 UnboundListDemo.dpr 作为 UnboundListDemoD11.dproj 和 UnboundListDemoD12.dproj 的主要来源。

现在,如果我有Project: IOTAProject然后Project.FileName返回 dproj 文件名。我找不到获取 dpr 文件名的“官方”方式。有没有?可以通过解析 dproj 文件获得它(请参阅此处),但我更喜欢 ToolsAPI 方法。


编辑:我根据乔恩的回答想出了这段代码:

Is... 例程来自GX_GenericUtils


编辑 2:如何创建以下情况之一:

  1. 创建新的 VCL 应用程序。
  2. 另存为 MyProject.dproj。
  3. 在 IDE 中关闭项目。
  4. 在 Windows 资源管理器中,将 MyProject.dproj 重命名为 MyProjectD11.dproj。
  5. 从现在开始一定要打开 MyProjectD11.dproj,而不是MyProject.dpr!
0 投票
3 回答
1236 浏览

delphi - 提高 Delphi 2010 自己的调试可视化工具的速度

我为 TDataSet 编写了 Delphi 调试可视化工具来显示当前行的值,源 + 屏幕截图:http ://delphi.netcode.cz/text/tdataset-debug-visualizer.aspx 。工作很好,但很慢。我做了一些优化(如何获取字段名),但仍然只有 20 个字段需要 10 秒才能显示 - 非常糟糕。

主要问题似乎是慢 IOTAThread90.Evaluate 使用的主要代码如下所示,这个过程花费了大部分时间,与 ** 大约 80% 的时间一致。FExpression 是代码中 TDataset 的名称。

现在我不知道如何提高性能。

0 投票
2 回答
656 浏览

delphi - 如何过滤 Delphi 2010 编译器输出(提示)?

我试图摆脱 Delphi 编译器发出的一些提示(*)。浏览ToolsAPI ,我看到一个IOTAToolsFilter,它看起来可以帮助我通过它的Notifier 完成此任务,但我不确定如何调用它(通过我可以访问过滤器的xxxServices)。

谁能告诉我我在这里是否走在正确的轨道上?谢谢!

(*) 特别是,H2365 关于与父级大小写不匹配的覆盖方法。当您有大约 500 万行活动代码且代码约定与 Embarcadero 的代码约定略有不同时,这不是很好。几个月来我们一直在毫无提示地工作,我们有点想念他们。:-)

0 投票
2 回答
466 浏览

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

我想通过ToolsAPI获取模块(帕斯卡单元)的结构信息。就像 IDE 的结构视图一样。

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

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

0 投票
1 回答
420 浏览

delphi - 如何使用 Open Tools API 折叠插入的区域?

我想在编辑视图中插入一个区域,然后折叠这个区域。

此代码片段将在代码编辑器中插入一个区域。但是 IDE 需要一些操作才能在代码编辑器中生成这样的区域。

有什么方法可以强制 IDE 执行此操作,然后我可以使用

折叠它?

0 投票
2 回答
3407 浏览

delphi - 创建一个简单的 Delphi IDE 专家

我想为 Delphi 7 创建一个简单的 IDE Expert,如下图所示:

替代文字

我已经验证了为这个问题提供的链接,但 OTA Api 新闻组已失效,并且大部分文档不可用(链接断开)。有人可以给出一个起点吗?

0 投票
1 回答
1365 浏览

delphi - Delphi Open tools Api 创建项目向导

我正在尝试创建一个项目向导,并且对开放工具 api 完全陌生。

我得到了以下问题。是否可以将项目保存到特定位置,如果可以,我该怎么做。我的向导询问位置。

我创建了一个新表单,但它的名称为 Form1。我喜欢给它一个具体的名字。我怎样才能做到这一点?

我喜欢将数据模块复制到我的项目中。如何告诉向导复制文件并将其以不同的名称保存在项目目录中?

0 投票
1 回答
825 浏览

delphi - 如何使用 ToolsAPI 检索 $(Config) 的值?

在使用 ToolsAPI 编写 Delphi 专家时,我们可以使用 GetEnvironmentVariable 来检索当前 Delphi IDE 进程可用的环境变量。但是,这仅适用于在您当前的用户帐户设置或 Delphi 的环境变量设置中定义的变量

Delphi 2010 / XE 中的 $(Config) 等一些变量可供使用,但它不显示为环境变量。我们可以通过在详细设置中打开“诊断”来获得变量列表。在 Delphi IDE 中编译项目时,$(Config) 变量会出现在诊断输出中。

有没有办法在 ToolsAPI 中检索 $(Config) 的值?

0 投票
3 回答
1061 浏览

delphi - Delphi的ToolsAPI的IOTAProjectCompileNotifier如何实现?

我正在使用 Delphi XE IDE。我创建了一个通知器来实现 IOTACompileNotifier。在 IDE 中安装专家后。当我编译我的项目时,代码工作正常。通知程序正在为 ProjectCompileStarted 工作。

第二次编译我的项目,Delphi IDE提示:

虽然我的表现看起来很奇怪:

在通知者中。我只想显示无论我如何使用,ProjectBuilder 的 Add and Remove compile notifier 似乎都无法正常工作。

请告知我应该如何实施 IOTAProjectCompileNotifier。

谢谢你。

以下是完整的源代码:

0 投票
1 回答
306 浏览

delphi - 我可以通过 Toolsapi 恢复 Delphi XE 项目的更改吗?

我正在编写 Delphi XE 专家。专家将构建配置从“调试”切换到“发布”,执行构建并将“发布”切换回“调试”。

切换构建配置时,只有 .dproj 文件已修改。项目状态变为已修改。

是否可以使用 ToolsAPI 恢复项目文件状态?