0

我有一个 FMX 编辑框,并且想将输入的值 ( TEdit.Data)分配给TValue某个对象的属性。该对象还包含一个TypeInfo指针,该指针指定在编辑框中输入的数据应该是哪种类型。

   TAttrib = class(TObject)
    public
      property WantedType: PTypeInfo;
      property Value: TValue;
    end;

我想要完成的是,我可以将输入的数据分配给 TAttrib.Value,然后根据 WantedType 验证输入的数据是否采用正确的格式,如下所示:

Attrib.Value := TEditbox.Data;
Valid := Attrib.Value.TryCast(Attrib.Wantedtype, lVal) and (not lVal.IsEmpty);

这失败了,因为Value它始终是字符串类型,并且TryCast不会从字符串转换为扩展的 ie,即使输入的字符串可以很好地转换为 ieStrToFloat()

我怎样才能做到这一点?

4

1 回答 1

1

您已经找到TryCast了在TValue. 而且它支持的转换不包括你需要的一些转换。

没有内置支持您要实现的目标。您将不得不自己动手,或者找到其他一些可以满足您需求的第三方库。

于 2013-10-10T10:24:47.083 回答