Obtener la posición de una estructura var AKA Offset of record field

Me gustaría obtener una "posición" de una estructura / registro.

Di que tengo este disco:

type
  MyStruct = record
    MyInteger   : Integer;
    MyInteger2  : Integer;
    MyInteger3  : Integer;
    MyFunc      : function (FirstParam : WideString; SecondParam : String) : Integer;
    MyString    : String;
    MyString2   : WideString;
    MyPchar     : pchar;
end;

Como puede ver, este registro tiene un tamaño de 28 bytes (7 vars x 4 bytes). Básicamente, porque todas las vars son vars de 4 bytes (como Integer) o punteros (también 4 bytes). Ahora digamos que tenemos esta estructura cargada en una dirección de memoria (X = 0) (lo que también significa que la dirección de MyInteger sería 0). La dirección de MyInteger3 (por ejemplo) sería 8 (¡tenga en cuenta que X = 0!) ¿Cómo puedo obtener la posición (número / dirección) de la estructura dinámicamente?

Espero que ustedes saben lo que quiero decir? Gracias por adelantado.

BTW: ¿Hay alguna Var siempre 4 bytes en una estructura? EDIT: esto es incorrecto si arreglas el spcae:String[100]

Respuestas a la pregunta(2)

Su respuesta a la pregunta