gpt4 book ai didi

macros - 在 Inno Setup [代码] 部分将宏扩展为 Pascal 代码

转载 作者:行者123 更新时间:2023-12-04 03:24:28 30 4
gpt4 key购买 nike

我试图制作一个宏来避免重复代码和注释。

我试过这个:

#define GrowOnPage(any Page, any Component) Component.Width := Page.SurfaceWidth; Component.Anchors := [akLeft, akRight, akTop];

但是,它找不到宏。我只是尝试像普通函数/过程一样调用它:

GrowOnPage(configPage, configTextField);

也许我完全误解了这里的宏。但是文档没有任何示例。

我没有为此制定程序的原因是 Anchors属性在组件的公共(public)父类中不可用,例如 TCustomEdit .

解决这个问题的正确方法是什么?

最佳答案

要评估预处理器函数,您必须使用预处理器指令。最常用的方法是使用 #emit directive .

不过请注意,Inno Setup 预处理器函数 与 C 不同。它们实际上是函数。因此,如果您想使用它们来生成脚本的一部分,则它们必须评估为一个字符串。像这样:

#define GrowOnPage(str Page, str Component) \
Component + ".Width := " + Page + ".SurfaceWidth; " + \
Component + ".Anchors := [akLeft, akRight, akTop];"

然后像这样使用它:

#emit GrowOnPage("configPage", "configTextField")

关于macros - 在 Inno Setup [代码] 部分将宏扩展为 Pascal 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67870240/

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