Delphi 5 将类型转换为评估类型导致无效类型转换错误

Delphi 5 cast type to evaluated type causes Invalid typecast error

我需要将 Variant 转换为 TNotifyEvent,但不能。

如图所示,我使用 GetPropValue 得到 TMenuItemOnClick 属性。我必须将其与另一个 TNotifyEvent 进行比较,因此我也必须将其转换为 TNotifyEvent.

在运行时,这始终是 TNotifyEvent 的类型,但是当我尝试将其转换为 TNotifyEvent 时,代码无法编译。

我怎样才能让它发挥作用?不幸的是,我只有 Delphi 版本 5,因此 RTTI 功能有限。

您调用了错误的方法。您需要 GetMethodProp 而不是 GetPropValue。像这样:

TNotifyEvent(GetMethodProp(MenuItem, 'OnClick'));