gpt4 book ai didi

delphi - 如何通过新的 RTTI 设置事件处理程序? [D2010]

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

在使用新的 RTTI 模块时,我找不到使用新实用程序设置事件处理程序的方法。尝试这样的事情:

LProp := TRttiContext.Create.GetType(Form1.ClassInfo).AsInstance.GetProperty('OnClick');
LProp.SetValue(Form1, {a TValue!});

SetValue 需要传递一个 TValue,但我还没有找到一种通过 TValue 表示 TMethod 的方法。有意见吗?

ps。还有一个附带问题.. 似乎在 RTTI 变量前加上“L”是一种约定(在我看来,这是一个很好的约定,元代码很快就会变成一个谜题)。但它实际上代表什么?

最佳答案

您可以使用 From 方法使 TValue 包含任意类型的值。尝试这样的事情:

lValue := TValue.From<TNotifyEvent>(eventHandler);

顺便说一句,我认为 L 只是表示本地局部变量。

关于delphi - 如何通过新的 RTTI 设置事件处理程序? [D2010],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482461/

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