One potential issue with Delphi coding, is about how the result of a functions are implemented.
If you forget to set a result value to a function, you'll
get a compiler warning.
Never underestimate such warning: IMHO this is not a warning, but an error.
And you should better be aware of the handling of reference-counted types
(e.g. string) in a function results: those are passed the stack as
var parameters, so the result of a function may be set
even if an exception is raised during function execution!