Delphi 允许在定义属性时使用stored关键字,如下所示:
property Fields: TIndexDefs read FFields write SetFields stored FieldsStored;
关键字的用途是什么?它有什么作用?
amrnrhlw1#
从我的 Delphi 7帮助文件:可选的stored、default和nodefault指令称为存储说明符。它们对程序行为没有影响,但控制是否将已发布属性的值保存在窗体文件中。stored指令后面必须跟True、False、布尔字段的名称或返回布尔值的无参数方法的名称。例如,
property Name: TComponentName read FName write SetName stored False;
如果属性没有stored指令,则将其视为指定了stored True。它控制是否在窗体的.DFM文件中存储与组件相关的属性。
r7xajy2e2#
此关键字确定属性值是否应保存在窗体文件中;它在默认情况下是true。例如,它可以避免在.dfm文件中保存大块的二进制信息(例如,必须仅在运行时读取其内容的图像组件)。
true
.dfm
xt0899hw3#
stored指令采用布尔值:返回布尔结果、布尔类型字段引用或布尔类型常量表达式的方法。属性的RTTI记录字段偏移量、方法引用或常量值,Delphi的IDE使用这些信息来决定是否从. dfm文件中省略该属性。IDE将调用该方法、检查字段的值或使用常量布尔值,如果该值为False,则不会将属性保存到. dfm文件中。如果存储的值为True,则会发生默认行为,即在属性值与默认值不同时存储该属性。提示和技巧
参考:https://www.oreilly.com/library/view/delphi-in-a/1565926595/re307.html
3条答案
按热度按时间amrnrhlw1#
从我的 Delphi 7帮助文件:
可选的stored、default和nodefault指令称为存储说明符。它们对程序行为没有影响,但控制是否将已发布属性的值保存在窗体文件中。
stored指令后面必须跟True、False、布尔字段的名称或返回布尔值的无参数方法的名称。例如,
如果属性没有stored指令,则将其视为指定了stored True。
它控制是否在窗体的.DFM文件中存储与组件相关的属性。
r7xajy2e2#
此关键字确定属性值是否应保存在窗体文件中;它在默认情况下是
true
。例如,它可以避免在.dfm
文件中保存大块的二进制信息(例如,必须仅在运行时读取其内容的图像组件)。xt0899hw3#
stored指令采用布尔值:返回布尔结果、布尔类型字段引用或布尔类型常量表达式的方法。属性的RTTI记录字段偏移量、方法引用或常量值,Delphi的IDE使用这些信息来决定是否从. dfm文件中省略该属性。
IDE将调用该方法、检查字段的值或使用常量布尔值,如果该值为False,则不会将属性保存到. dfm文件中。如果存储的值为True,则会发生默认行为,即在属性值与默认值不同时存储该属性。
提示和技巧
参考:https://www.oreilly.com/library/view/delphi-in-a/1565926595/re307.html