Конвертировать TValue в TDateTime
Как я могу конвертировать TValue в TDateTime?
Я вижу, что есть методы, такие как AsInteger, AsDouble и т. Д., Но ничего для TDateTime.
var
c : TRttiContext;
t : TRttiType;
f : TRttiField;
fieldValue : TValue;
fieldDateValue : TDateTime;
begin
c := TRttiContext.Create;
t := c.GetType(Self.ClassType);
for f in t.GetFields do begin
fieldValue := field.GetValue(Self);
//convert the TValue in TDateTime
end;
end;
1 ответ
Решение
Бетон AsXXX
методы (как AsInteger
) являются просто ярлыками для некоторых внутренних типов (а некоторые также реализованы с оптимизацией для определенного типа). Но чтобы получить любой тип из TValue
Вы можете использовать AsType<T>
метод.