Мы переписываем ядро вычислений с нуля в Delphi и ищем способы, позволяющие другим людям писать код против него.
Автоматизация кажется достаточно безопасным способом сделать это.Мы думаем об одном использовании: сделать его доступным для VBA / Office, а также сгенерировать сборку .NET (это легко на основе объекта автоматизации).
Но код все равно должен быть простым в использовании изDelphi, так как мы будем писать наш (настольный) пользовательский интерфейс с этим.
Теперь я смотрю на создание сервера автоматизации в Delphi, и, похоже, довольно сложно создавать компоненты вмастер библиотеки типов, а затем сгенерируйте базовый код.
Расчеты, которые мы должны выполнить, описаны в официальных правилах и положениях, которые еще не ратифицированы, и поэтому могут измениться до того, как мы это сделаем -они очень вероятно будут, возможно, довольно широко.Ожидание окончательной версии не вариант.
Альтернативным способом может быть сначала закончить всю объектную модель и написать отдельный сервер автоматизации, который описывает только объект верхнего уровня, переключатель $METHODINFO ON
ииспользуйте TObjectDispatch, чтобы вернуть все подчиненные объекты. На мой взгляд, это повлечет за собой необходимость написания оболочек для возврата объектов через интерфейс IDispatch.Поскольку существует более 100 различных классов, это не выглядит привлекательным вариантом. Редактировать: TObjectDispatch достаточно умен, чтобы обернуть любые объекты, возвращаемые свойствами и методами;поэтому нужно обернуть только верхний объект (ы).Однако отсутствие полной библиотеки типов означает, что возможно только позднее связывание.
Существует ли другой, более простой (читай: без проблем) способ написания COM-доступной объектной модели в Delphi?