У меня есть универсальный класс Delphi, который предоставляет функцию с аргументом универсального типа. Внутри этой функции мне нужно передать экземпляр универсального типа другому объекту, ожидающему типа Variant. Примерно так:
type
IMyInterface = interface
DoStuff(Value: Variant);
end;
TMyClass<T> = class
FMyIntf: IMyInterface
procedure DoStuff(SomeValue: T);
end;
[...]
procedure MyClass<T>.DoStuff(SomeValue: T);
begin
FMyIntf.DoStuff((*convert SomeValue to Variant here*));
end;
Я пробовал использовать Rtti.TValue.From (SomeValue) .AsVariant. Это работало для целочисленных типов, но не подходило для логических значений. Я не совсем понимаю, почему, поскольку обычно я мог бы присвоить логическое значение Варианту ...
Есть ли лучший способ сделать это преобразование? Мне нужно, чтобы он работал только с простыми встроенными типами (исключая перечисления и записи)