//OffsetOf - PtrUInt(@(CStruct(nil + 1)^.Y)) - 1;
uses SysUtils;
type glTexture = record
ID: Int32;
ColourID: Int32;
FullColourID: Int32;
X, Y: Int32;
end;
type ptr_glTexture = ^glTexture;
var
offset: PtrUInt;
p: Pointer;
begin
p := nil;
offset := PtrUInt(@(ptr_glTexture(p)^.X));
writeln('offset of X: ' + intToStr(offset));
end.
Ly9PZmZzZXRPZiAtIFB0clVJbnQoQChDU3RydWN0KG5pbCArIDEpXi5ZKSkgLSAxOwoKdXNlcyBTeXNVdGlsczsKCnR5cGUgZ2xUZXh0dXJlID0gcmVjb3JkCiAgSUQ6IEludDMyOwogIENvbG91cklEOiBJbnQzMjsKICBGdWxsQ29sb3VySUQ6IEludDMyOwogIFgsIFk6IEludDMyOwplbmQ7Cgp0eXBlIHB0cl9nbFRleHR1cmUgPSBeZ2xUZXh0dXJlOwoKCnZhcgogIG9mZnNldDogUHRyVUludDsKICBwOiBQb2ludGVyOwpiZWdpbgogIHAgOj0gbmlsOwogIG9mZnNldCA6PSBQdHJVSW50KEAocHRyX2dsVGV4dHVyZShwKV4uWCkpOwogIAogIHdyaXRlbG4oJ29mZnNldCBvZiBYOiAnICsgaW50VG9TdHIob2Zmc2V0KSk7CmVuZC4=