Страница 1 из 1
Динамический интерфейс
Добавлено: 09 окт 2007, 11:12
evchic
Всем Привет!
Подскажите как сделать? Суть такова, есть Интерфейс(1) на нем динамически загружается в зависимости от параметров Инт(2) или Инт(3) или Инт(4)! Вопрос как передать из Инт(1) в Инт(2) какой либо параметр?
Так не работает т.к. это вызов фейса через
Код: Выделить всё
panel format_2;
Show at (71,51,,);
Embedded scINFOS1 '1' interface;
end;
end;
...
cmW:
{
TNrec:=TempR.nrec;BindEmbeddedInterface(scINFOS1, 'iVisul_1')
};
DSK использовать не хочется...
Может в Галактике есть какие нибудь Глобальные переменные которые можно былоб использовать
И еще раскажите как работать с функциями
Где взять для них
aGroupName : string - название существующей группы параметров. Параметры создаются средствами языка Паскаль.
aParameterName : string - название параметра.
Добавлено: 09 окт 2007, 12:07
san
из инт1 в инт2 через Parameters Tnrec в инт2; без проблем.параметр передается в строке вызова инт2
вернуть параметр из инт2 в инт1 тоже , для этого надо в инт2 указать alwaysreturn в строке заголовка инт2 или выходить c кодом 0.
если все интерефейсы самописные и есть возможность их вместе собирать, можно в проекте объявить врем таблицу и через нее передавать данные.
GetCompParameter
SetCompParameter
это для работы с параметрами конфигурационного файла (galnet.cfg)
aGroupName - секция
aParameterName - параметр
aFlags - брать первый или следующий (для повторяющихся параметров с одинаковым именем)
Добавлено: 09 окт 2007, 23:48
edward_K
фейсы инт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 четко видно - и все нормально обновляется при сдвиге в главном окне.
Добавлено: 10 окт 2007, 11:03
evchic
Добавлено: 10 окт 2007, 11:26
edward_K
1. Сапорт не самое удачное место для тестирования. Ядро все такие другое, чем в галке - не все пашет.
2. Logstrtofile вам поможет. А также наверное в cmAlways можно перехватить чего нибудь.
3. Возможно вы действительно забываете освобождать объекты.
Добавлено: 10 окт 2007, 15:13
evchic
edward_K
как правильно реализовать
pинт2.функция(....) ;
Добавлено: 10 окт 2007, 16:00
edward_K
для начала почитайте в vipprogr.chm , что такое объектный фейс.
В самом инт2 просто пишите сию функцию как обычно. Описание функций для внешнего использования обычно делают в vih файлах.
Откройте любой vih -увидите как идет описание.
В vipprogr.chm есть готовые примеры.
А дальше либо доходите сами, либо заказывайте на стороне (с условием передачи всех необходимых файлов для компиляции) - много чего нужно понимать при встраивание фейсов. Смысла приводить здесь несколько страниц из доки не вижу.

Добавлено: 11 окт 2007, 10:56
san
evchic
а у меня такая ошибка стала выскакивать после изменения интер-са конфигуратором.удалил crf заработало.