IIRC Delphi uses more NativeInt and NativeUint, as they were introduced in XE2. The basic problem is that a good name for this quickly becomes too verbose.
Personnaly I think that SystemInt would had been a better choice since that's even not the hardware that defines this. Native is ambiguous.
That is exactly the point: PtrUint implies some sort of pointer type when in fact it is an integer type: it is non-intuitive.
A non-descriptive name is better than a descriptive name that implies one thing, but actually does something else, because it forces you to dive into the documentation.
'Too verbose': well this is Pascal, not C(++/#)

Something like 'PtrAsUInt' or 'PtrToUInt' or 'Ptr2UInt' or 'PtrAsNativeInt' would have been better choices.
But I guess at the time this was invented most of the developers still had a C-ish background, hence the erroneous name.
Water under the bridge...
If you're sure of what you're doing just surround the code with:
{$HINTS OFF}{$WARNINGS OFF} ...
In this particular case TS would have gotten the completely wrong values because he was trying to cast a pointer value to an integer value and not the value the pointer was referring to.
Or possibly a segmentation fault.