Uzyskaj pozycję struktury var var AKA Offset pola rekordu

Chciałbym uzyskać „pozycję” struktury / rekordu.

Powiedz, że mam ten rekord:

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

Jak widać ten rekord ma rozmiar 28 bajtów (7 varów x 4 bajty). Zasadniczo, ponieważ wszystkie vary są albo 4 bajtami vars (takimi jak Integer) lub wskaźnikami (także 4 bajty). Powiedzmy, że mamy tę strukturę załadowaną do adresu pamięci (X = 0) (co oznacza również, że adres MyInteger będzie równy 0). Adres MyInteger3 (na przykład) wynosiłby 8 (pamiętaj o X = 0!) Jak mogę dynamicznie uzyskać pozycję (numer / adres) struktury?

Mam nadzieję, że wiecie, co mam na myśli? Z góry dziękuję.

BTW: Czy jakikolwiek Var ma zawsze 4 bajty w strukturze? EDYCJA: To jest złe, jeśli naprawisz spcae:String[100]

questionAnswers(2)

yourAnswerToTheQuestion