Hier kannst du eigentlich nur tricksen, oder wenn es nicht allzu performant sein muss, schau dir mal
TValue
an.
Für so triviale Datentypen kanns du mit etwas arbeiten:
Delphi-Quellcode:
var
I: Integer;
begin
if (TypeInfo(T) = TypeInfo(Integer)) then
begin
Move(GenericValue, I, SizeOf(T));
oder alternativ:
Delphi-Quellcode:
var
I: Integer absolute GenericValue;
begin
if (TypeInfo(T) = TypeInfo(Integer)) then
begin
ShowMessage(IntToStr(I));
end;
Edit:
Achso, es gibt mitlerweile ein paar Intrinsics bezüglich Typ-Checks:
http://delphisorcery.blogspot.de/201...n-xe7.html?m=1. Insbesondere
GetTypeKind
könnte für dich eine Alternative zu
TypeInfo
sein, da der Compiler hier mitlerweile sogar so klug ist und tatsächlich nur die verwendeten Codeteile in das fertige Binary linkt (gab da meine ich irgendeine Einschränkung, dass man entweder
case
..
of
verwenden musste bzw. ein entsprechendes
if
Statement nur eine Bedinung haben durfte. Müsstest du ggfls. nochmal selbst ausprobieren).