Object Pascal 中的属性与事件详解
1. 自动运行时类型信息(RTTI)
在 Object Pascal 中,对于已发布字段生成的 RTTI 有着特殊的用途。实际上,使用已发布字段并非组件开发的强制要求,将其设为私有能让代码更符合面向对象编程(OOP)的理念,但这需要额外的运行时代码。
当在一个不继承自 TPersistent 的类中添加 published 关键字时,编译器会自动启用 RTTI 生成,并添加 {$M+} 行为。例如以下代码:
type
TMyTestClass = class
private
FValue: Integer;
procedure SetValue(const Value: Integer);
published
property Value: Integer read FValue write SetValue;
end;
编译器会显示类似这样的警告:
[dcc32 Warning] AutoRTTIForm.pas(27): W1055 PUBLISHED caused RTTI ($M+)
to be added to type 'TMyTestClass'
这表明编译器自动在代码中注入了 {$M+} 指令。以下是一个使用动态访问属性的示例代码: </
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



