Как правильно задавать/читать параметры макро обьектов?

Автор udachnik, 21.08.07, 12:11:12

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

udachnik

Доброго времени суток!
С помошью ksMacro создал макро обьект, далее задаю параметры макро обьекта и пытаюсь читать их, но возникает ошибка
Вот код на Delphi:
var
UserParamStruct : KSUserParam;
Userparamarr :ksDynamicArray;
UserVariable:  ksLtVariant;.
pobj : reference; // тут лежит указатель на макро элемент
doc    : ksDocument2D;
iKompasObject: kompasobject;
....
begin.
....
UserParamStruct  := ksUserParam(iKompasObject.getparamstruct(ko_UserParam   ));
userparamStruct.Init;
userparamStruct.fileName := 'MyLib.rtw';
userparamStruct.libName := 'ХХХ';
userparamStruct.number := 1;
Userparamarr := ksDynamicArray(userparamStruct.GetUserArray);
UserVariable:=  ksLtVariant(iKompasObject.getparamstruct(ko_LtVariant   ));
UserVariable.Init;
UserVariable.strVal := 'Hello';
Userparamarr.ksAddArrayItem(-1,UserVariable);
UserVariable.Init;
UserParamStruct.SetUserArray(Userparamarr);
doc.ksSetMacroParam(pobj,UserparamStruct,false, false,false);
.....
UserParamStruct := nil;// почистим ссылки и попробуем считать параметры
Userparamarr := nil;
UserVariable := nil;

UserParamStruct  := ksUserParam(iKompasObject.getparamstruct(ko_UserParam   ));
  UserParamStruct.Init;
doc.ksGetMacroParam(pobj, UserParamStruct);
  Userparamarr:=  ksDynamicArray(UserParamStruct.GetUserArray);
   UserVariable:=  ksLtVariant(iKompasObject.getparamstruct(ko_LtVariant   ));
   UserVariable.Init;
   Userparamarr.ksGetArrayItem(0, UserVariable); // выдает что нет элемента с таким номером

.....


end;