As I said, it heavily depends on the coding style. I would never do this. The last time I wrote this kind of stuff was about Turbo Pascal 4 or so.
I would declare explicit types for these records. Even if they are only used locally.
I started up a new blog recently and just added a quick article on using SVG with TPath. I didn't know how easy it was to do in FireMonkey:
https://www.ideasawakened.com/post/simple-svg-images-in-delphi-applications
You can presumably remove the drop target code and just create and free a TObject instead to show that the issue is not in the drop target code.
Making a minimal example is really useful.