[QMacros] 更新:增加对用户自定义规则的宏名称解析的支持

QMacros 默认是通过宏的开始字符串和结束字符串来区隔宏名称的。但这并不是所有的时候都能满足我们的需要,比如下面的字符串中,我们用 $ 来开始宏名称,遇到非数字时,宏名称就结束:

Replace $1.Name to $2.Name

根据前述规则,$1 和 $2 我们人工就可以解析出两个宏 1 和 2,而由于没有宏结束字符串,QMacros 默认无法判定宏啥时候结束,就需要用户进行干予了。先请看下面的代码:

我们为 TQMacroManager 实例 AMgr 指定了 OnTestNameEnd 事件的响应,在其中,我们如果检测到非数字,就认为宏名称定义结束,从而为 AMgr 实例对宏名称的解析提供了辅助。好了,我们看上面的代码的实际执行结果:

qmacrouserending

当然了,有结束怎么可以没有开始,QMacros 同样提供了一个 OnTestNameStart 事件,允许你自己指定宏的开始。具体就不在这儿展开说明了,大家参考上面的例子,很容易理解。两个事件的参数说明如下:

  • ASender : 触发事件的 TQMacroManager 实例;
  • p :当前解析的字符串位置,用于判定当前字符的类型;
  • ALen :当您判断当前位置的类型为 mctNameStart 或 mctNameEnd 时,返回这个起始或结束标记的长度,以便 TQMacroManager 跳过指定的字符;
  • AType :当前位置的类型
    • mctChar :默认,不需要判断,ALen 的值也不用设置;
    • mctNameStart : 当前位置是宏名称的开始位置,ALen 指定宏名称开始标记的长度;
    • mctNameEnd :当前位置是宏名称的结束位置,ALen 指定宏名称结束标记的长度;
分享到:

0 条评论

沙发空缺中,还不快抢~