Страница 1 из 1
Проблема с функцией Classifier.GetSubItems(...) в Delphi
Добавлено: 03 фев 2009, 16:57
Isaev_AA
Значит что я делаю. Конечно ....
Код: Выделить всё
AplPssAPI: TAplPssAPI;
PssClassifier :IAplAPI_Classifier;
... потом ....
Код: Выделить всё
AplPssAPI:=TAplPssAPI.Create(nil);
PssClassifier:= PssApi As IAplAPI_Classifier;
PssClassifier.LoadDictionary;
... вызываю, передаю элемент уровня каталога (Integer) и две переменные (OleVariant) ...
Код: Выделить всё
PssClassifier.GetSubItems(Level,tempItems,tempRels);
... и получаю ...
ERROR: Access violation ... in module 'oleaut32.dll' ! :twisted:
Re: Проблема с функцией Classifier.GetSubItems(...) в Delphi
Добавлено: 03 фев 2009, 17:21
ayatsk
1. Был ли Connect ?
2. Как получен Level ? (реально это указатель, и если указывает не туда - будет падение)
3. Какая верся Delphi?
Re: Проблема с функцией Classifier.GetSubItems(...) в Delphi
Добавлено: 03 фев 2009, 17:26
Isaev_AA
Connect конечно был !
Delphi 7.0
Уровень был получен ...
Код: Выделить всё
InSPI:=PssClassifier.GetClassifierSystemById('СИН');
if PssClassifier.LoadSubClassifierLevels(InSPI,tempFolders,0) Then
begin
if (VarArrayHighBound(tempFolders,1)-VarArrayLowBound(tempFolders,1)+1)>0 then
begin
ArrTemp:=tempFolders;
for i:=0 to Length(ArrTemp)-1 do
begin
PssClassifier.GetSubItems(ArrTemp[i],tempItem,tempRels);
end;
end;
end;
... в массиве ArrTemp объекты типа "apl_classifier_level".
В общем мне нужно получить все позиции инструмента которые привязаны к данному уровню каталога.
То есть от объектов "apl_classifier_level" перейти к связанному списку "charact_list_element".
Re: Проблема с функцией Classifier.GetSubItems(...) в Delphi
Добавлено: 03 фев 2009, 19:25
ayatsk
Сейчас функция GetSubItems в качестве первого параметра корректно воспринимает только массив. И возвращает содержимое всех переданных ей уровней. Должна была разбираться что ей передали - массив или целое, но ... В ближайшее время исправим.
Если вызвать как
Код: Выделить всё
PssClassifier.GetSubItems(tempFolders,tempItem,tempRels);
- работает.