> o := PtrUInt( @recvar.var1 ) - PtrUInt( @recvar ); > o := PtrIUnt( @recvar.var2 ) - PtrUInt( @recvar ); > o := PtrInUt( @recvar.var3 ) - PtrUInt( @recvar ); Actually even o := PtrUInt(@(rectype(nil^).var1))); is possible.