On 08/07/2018 17:07, Bo Berglund wrote:
Say I have a record type defined like this:

   TAppData = packed record  //Total 8 bytes per app
     ActiveToken: word; //Matches constant for app if active
     Option: word;      //16 option bits
     ExpDate: word;     //Integer TDateTime values
     Info: word;        //16 info bits
   end;

The data is stored in a security dongle memory which can be accessed
only a word at a time by its word address 0..55.

I want to write my code such that the address to the individual member
is calculated automatically so if the record type is modified it will
still work.


var AppData: TAppData absolute 0;
begin
writeln( ptrint( @AppData.Option ));

You can also take a variable without "absolute"
@AppData.Option - @AppData
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to