We rewrote the core of computing from scratch in Delphi and looked for ways to let other people write code against it.
Automation seems like a pretty safe way to do this. One of them was to make it available for VBA / Office, as well as create a .NET assembly (based on an automation object, which is easy).
But the code should still be easy to use from Delphi, since it’s good to write our (working) interface with this.
Now I am creating an automation server in Delphi, and it seems quite difficult to create components in the type library wizard and then generate the base code.
The calculations to be performed are described in official rules and regulations that have not yet been ratified, and therefore could still be changed before this was done - they are likely to be quite broad. Waiting for the final version is not an option.
An alternative way could be to first complete the entire object model and write a separate automation server that describes only the top-level object, switch $METHODINFO ONand use TObjectDispatch to return all subordinate objects. As I see it, this will entail the need to write wrappers to return objects using the IDispatch interface. Since there are more than 100 different classes, this does not look like an attractive option.
Edit: TObjectDispatch is smart enough to wrap any objects returned by properties and methods; therefore, only the top object will need to be wrapped. However, the absence of a complete type library means that only late binding is possible.
, (read: hassle-free) COM- Delphi?