I am kind of curious as about that "offsetof", its a compiler intrinsic? what I mean by that, can it evaluate values at compile time when building Enumerators and sets?
Yes - it's a compiler intrinsic that const-folds to a plain integer at compile time, so it works anywhere a constant expression is allowed. It's part of the
Composable Records feature - OffsetOf() and BitOffsetOf().
const
Enums: Array[0..4] of Integer = (OffsetOf(TRect.Left),offsetOf(TRect.top),offsetOf(TRect.Right),offsetOf(TRect.Bottom), 10);
begin
for var i := 0 to high(Enums) do writeln('Enums[', i, '] = ', Enums[i]);
Enums[0] = 0
Enums[1] = 4
Enums[2] = 8
Enums[3] = 12
Enums[4] = 10
Give it (Unleashed) a try - you might find you like it

Install is super simple: use the installer, or fpcupdeluxe after adding 2 lines to the INI. It's recently synced with upstream FPC, with loads of features on top. And if you think this particular feature (these intrinsics) would be useful in stock FPC, go ahead and open a feature-request issue on GitLab - the code's ready, and the FPC team is free to take any part of it into stock FPC if they want.