gpt4 book ai didi

delphi - 使用 DWScript 创建宏

转载 作者:行者123 更新时间:2023-12-03 19:33:52 28 4
gpt4 key购买 nike

我从 Delphi Tools Site 中阅读了这一段

Changes since the last SVN update are:
Added support for FreePascal-like compile-time $INCLUDE “macros”:
%FILE% and %LINE% insert the current filename and line number into the source
%FUNCTION% inserts the current function name, or class.method name into the source
%DATE% and %TIME% allow inserting the compile date/time

有没有一种方法可以在 DWScript 中定义宏(除了这些函数),就像人们在 excel 中定义宏(使用 VBscript)一样,以一种简单的方式,其中脚本的名称将是稍后将使用的函数的名称, 不添加 {$Include XXX}在执行的脚本中?

N.B.:我知道这可以通过管理要保存在名为 的特定文件中的书面脚本来完成。功能 例如。然后保存添加的函数及其名称( Add ),然后用户将编写 Add(1,2) 得到结果;但是我的老板希望它看起来像 excel 中的 vbscript。

最佳答案

我不确定是否理解这个问题,所以我将列出各种可能解释的各种答案......

  • 如果您想声明脚本引擎隐式支持的函数而不必“{$include}”或“使用”它们,您可以通过 TdwsUnit 组件声明它们,并将其附加到脚本组件。如果您没有设置“coExplicitUses”选项,它们将自动可用,并且您在 IDE 中获得设计时支持。
  • 如果要添加内部函数(始终存在),请使用 RegisterInternalFunction 重载之一,您可以检查任何“dwsXxxxFunctions.pas”单元作为示例。这可能更有效,但也更麻烦。
  • 如果您想在源代码中预处理自定义源级宏(ala C 的宏),您可以使用过滤器功能(检查 HTML 或 JS 过滤器作为如何实现过滤器的示例)。
  • 如果您想动态地对“未知”名称使用react,因此您可以在现场声明它们或将它们动态绑定(bind)到某些东西,您可以使用 TdwsLanguageExtension.FindUnknownName,这就是 RTTI 环境的工作方式。 (参见 dwsRTTIConnector 中的 TRTTIEnvironment)。
  • 如果您想以完全自定义的方式解析完全自定义的代码区域,您也可以使用语言扩展,覆盖 ReadInstr 并检查 asmLib 和 JSLibModule 如何支持“asm”。
  • 关于delphi - 使用 DWScript 创建宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9680242/

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