Я физик. Я пытаюсь работать в Delphi с импортированным элементом управления ActiveX (файл ocx). Допустим, в библиотеке есть 3 интерфейса автоматизации: IGraph, IGraphAxes и IAxis. Структура библиотеки такова, что:
===Свойства IGraph:===
Idispatch* IGraphAxes;
... //другие члены
===Свойства IGraphAxes:===
Idispatch* XAxis;
Idispatch* YAxis;
Idispatch* ZAxis;
integer Color;
integer Style;
… //другое члены
===Свойства IAxis:===
float Min, Max;
Boolean ShowNumbers;
… //другие члены
Из IGraph я могу получить доступ к простым элементам IGraphAxes (цвет и стиль), используя функции GetIDsOfNames() и Invoke(). Но когда я пытаюсь получить доступ к XAxis (или YAxis, Zaxis), возникает ошибка. Во-первых, я использую GetIDsOfNames(), и он без проблем возвращает dispid XAxis. Но когда я вызываю Invoke с этим диспидом, возникает ошибка «Нарушение прав доступа по адресу…». Кажется, указатель idispatch (**Xaxis)* ни на что не указывает. Как я могу это решить? Как сделать интерфейс
Idispatch* Xaxis
и
IAxis связанным друг с другом?
P.S. извините за мой английский, я не носитель языка