Easiest to understand way using a struct-ured variable with functions

So does Delphi. The compiler is free to translate it into a value or pointer, whatever is shorter or faster.