Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Тема начата: A.n.d.r.e.w от 26.02.10, 10:19:13

Название: Библиотека моделей.
Отправлено: A.n.d.r.e.w от 26.02.10, 10:19:13
Здравствуйте, коллеги.
Хочу получить список всех элементов в библиотеке (интерфейс ksTreeNodeParam)
не пойму как использовать функцию ksGetLibraryTreeStruct
в SDK написано, что ksTreeNodeParam можно получить с помощью этой функции

делаю так


const LibName='C:\Program Files\ASCON\Libs\lib.lfr';
var Kompas: KompasObject;
var rNode: ksTreeNodeParam;
...

Kompas := KompasObject(CreateKompasObject);
result:=Kompas.ksGetLibraryTreeStruct (LibName, rNode);


так вот result всегда false.
такое ощущение, что ksTreeNodeParam надо предварительно как-то создать.
а функция ksGetLibraryTreeStruct уже должна заполнить его.
Название: Re: Библиотека моделей.
Отправлено: bergovin от 27.02.10, 09:05:43
Цитата: A.n.d.r.e.w от 26.02.10, 10:19:13
такое ощущение, что ksTreeNodeParam надо предварительно как-то создать.
Конечно надо поработать с ksTreeNodeParam, я с этими структурами никогда не работал, сильно вникать пока времени нет, но первое что приходит на ум - надо инициализировать его параметры методом Init
Название: Re: Библиотека моделей.
Отправлено: bergovin от 27.02.10, 09:09:31
Да, ещё заметил, вы же не получили интерфейс для rNode

Данный интерфейс может быть получен с использованием метода интерфейса KompasObject::ksGetLibraryTreeStruct.
Название: Re: Библиотека моделей.
Отправлено: A.n.d.r.e.w от 27.02.10, 09:25:06
Цитата: bergovin от 27.02.10, 09:09:31
Да, ещё заметил, вы же не получили интерфейс для rNode

Данный интерфейс может быть получен с использованием метода интерфейса KompasObject::ksGetLibraryTreeStruct.

Вот именно, не получил.
А как это сделать?? в функцию ksGetLibraryTreeStruct передаются две контанты а возвращает она boolean.
Название: Re: Библиотека моделей.
Отправлено: Slaviation от 27.02.10, 10:24:41
const LibName='C:\Program Files\ASCON\Libs\lib.lfr';
var Kompas: KompasObject;
var rNode: ksTreeNodeParam;
...

Kompas := KompasObject(CreateKompasObject);
rNode := ksTreeNodeParam(KompasObject.GetParamStruct(ko_TreeNodeParam))
result:=Kompas.ksGetLibraryTreeStruct (LibName, rNode);

Т.е. нужно сначала получить "корзинку", а потом ее подставить под Kompas.ksGetLibraryTreeStruct
Название: Re: Библиотека моделей.
Отправлено: A.n.d.r.e.w от 27.02.10, 10:46:10
Блин который раз я уже парюсь...
Забываю про эту функцию GetParamStruct

Спасибо, все получилось!  :)