sách gpt4 ai đã đi

Mở rộng macro thành mã Pascal trong phần Inno Setup [Mã]

In lại 作者:行者123 更新时间:2023-12-04 03:24:28 30 4
mua khóa gpt4 Nike

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

我试过这个:

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

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

GrowOnPage(configPage, configTextField);

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

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

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

1 Câu trả lời

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

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

#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
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com