Автоматически проверять 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
всегда имеет тип string, и TryCast
не конвертируется из строки в ie, то есть расширяется, даже если введенная строка будет хорошо конвертироваться с помощью ie StrToFloat()
Как я могу сделать это?
1 ответ
Вы уже нашли TryCast
, функция, которая преобразует между типами для TValue
, И его поддерживаемые преобразования не включают в себя некоторые необходимые вам преобразования.
Нет встроенной поддержки того, чего вы пытаетесь достичь. Вам придется свернуть свою собственную или найти какую-нибудь другую стороннюю библиотеку, которая делает то, что вы хотите.