Jam*_*ass 3 delphi serialization properties
希望这是一个快速的,"如果你知道如何"很容易......
我正在编写某种序列化/脚本类来动态生成表单,我前几天尝试设置TColor并得到一个错误
clBtnFace is not a valid integer value
或类似的东西,发现属性中使用的常量已注册,以便它们可以转换到整数,所以我添加了代码来获取转换器并使用它.
今天我有一个与ModalResult属性类似的问题,但我无法弄清楚DFM反序列化器如何处理这个属性?有什么想法它如何转换mrOK
成整数?
编辑
没有太多的例子可以给出:
PropInfo := GetPropInfo(Instance, PropertyName);
SetPropValue(Instance, PropInfo, PropertyValue);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Instance是TButton,PropertyName是'ModalResult',PropertyValue是'mrOK'
它不需要:
const
{ Dialog Box Command IDs }
{$EXTERNALSYM IDOK}
IDOK = 1; ID_OK = IDOK;
const
mrNone = 0;
mrOk = idOk;
type
TModalResult = Low(Integer)..High(Integer);
Run Code Online (Sandbox Code Playgroud)
TModalResult在某种程度上是Integer 的子范围,而mrOK只是一个整数常量.