delphi如何转换ModalResult属性?

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'

Uwe*_*abe 6

它不需要:

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只是一个整数常量.