Подскажите как сделать? Суть такова, есть Интерфейс(1) на нем динамически загружается в зависимости от параметров Инт(2) или Инт(3) или Инт(4)! Вопрос как передать из Инт(1) в Инт(2) какой либо параметр?
aGroupName : string - название существующей группы параметров. Параметры создаются средствами языка Паскаль.
aParameterName : string - название параметра.
из инт1 в инт2 через Parameters Tnrec в инт2; без проблем.параметр передается в строке вызова инт2
вернуть параметр из инт2 в инт1 тоже , для этого надо в инт2 указать alwaysreturn в строке заголовка инт2 или выходить c кодом 0.
если все интерефейсы самописные и есть возможность их вместе собирать, можно в проекте объявить врем таблицу и через нее передавать данные.
GetCompParameter
SetCompParameter
это для работы с параметрами конфигурационного файла (galnet.cfg)
aGroupName - секция
aParameterName - параметр
aFlags - брать первый или следующий (для повторяющихся параметров с одинаковым именем)
фейсы инт2,инт3 должны быть объектными.
ObjInterface objint2 ;
функции из инт2
End;
VipInterface инт2 implements objint2 ;
в инт1 объявляете
pинт2=objint2
грузите pинт2 через loadvipref ( сие важно)
далее когда надо подцепляете
BindEmbeddedInterface(scINFOS1, pинт2)
ну а параметры передаете как
pинт2.функция(....) ;
есть еще BindEvent - но это скорей наоборот - из инт2 выполнить чего то в инт1 - опять же в objinterface объявляется event ... . при выполнении какой либо функции в инт2 можно вызвать сию процедуру и выполниться процедура из инт1. Вообще посмотрите каталог МЦ, закладка аналитика например или фейсы в производстве - там сплошные BindEmbeddedInterface - по getifccurrentfieldname четко видно - и все нормально обновляется при сдвиге в главном окне.
Это я понял и уже разобрался прикол вот в чем!
Если изменять позицию в дереве Инт1 то Инт2 или Инт3 изменяется в зависимости от дерева...
Но если я стану в инт2 а затем вернусь к дереву в инт1 выскакивает ошибка
1. Сапорт не самое удачное место для тестирования. Ядро все такие другое, чем в галке - не все пашет.
2. Logstrtofile вам поможет. А также наверное в cmAlways можно перехватить чего нибудь.
3. Возможно вы действительно забываете освобождать объекты.
для начала почитайте в vipprogr.chm , что такое объектный фейс.
В самом инт2 просто пишите сию функцию как обычно. Описание функций для внешнего использования обычно делают в vih файлах.
Откройте любой vih -увидите как идет описание.
В vipprogr.chm есть готовые примеры.
А дальше либо доходите сами, либо заказывайте на стороне (с условием передачи всех необходимых файлов для компиляции) - много чего нужно понимать при встраивание фейсов. Смысла приводить здесь несколько страниц из доки не вижу.