Hmhm... just a quickie before I leave for the beergarden: I still don't understand how to use this in a working Class. You access the range from the outside, and that works...
writeln(Low(TFirstClass.Level));
but how would I access it from within the Class ?
procedure TBaseClass<T>.Show;
begin
writeln (low(level)); //<---- type mismatch
end;
I tinkered a bit, tried low(T) and low (<T>), and ran into internal error 2014050901. Not surprising really as I don't know what I'm doing.