自动验证 TEditBox.data 到 TValue.TypeInfo



我有一个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也不会从字符串转换为 StrToFloat()

我怎样才能做到这一点?

您已经找到了TryCast,该函数在TValue的类型之间进行转换。并且其支持的转换不包括您需要的某些转换。

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

相关内容

  • 没有找到相关文章

最新更新