Вопрос по итерфейсу работы со свойствами ILibPropertyObject

Автор A.n.d.r.e.w, 27.02.26, 12:07:23

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

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

A.n.d.r.e.w

Привет, коллеги!
История:
Создаю библиотечный макрообъект и управляю его свойствами
через ILibPropertyObject просто выделив макрообъект мышкой.
Свойства создаются редактируются всё ок.
Проблема:
Для свойства типа список например ksOPControlListDouble
не получается обновить выпадающий список в UpdateProperty( PropertyParam * param )
точнее получается только один раз при самом первом вызове UpdateProperty.

Сами значения обновляется каждый раз нормально, списки - нет.
Пишу уже туда рандомные значения при каждом UpdateProperty но они не меняются.
PropertyParam.additionalData это просто вариантный массив
Делаю так:
  param^.additionData:=VarArrayCreate([0, 1], varDouble);
  param^.additionData[0]:=random(100);
  param^.additionData[1]:=random(100);
Кто-то может сталкивался, пните в нужном направлении пожалуйста.

И еще вопрос. Почему ApplyProperty( PropertyParam * param )
вызывается два раза после изменения значения свойства?
во второй раз param = nil. Это для чего то нужно?




Student2025

А можете скинуть весь код (что бы не набирать его) ?

A.n.d.r.e.w

Я уж и не думал что кто-то ответит ))
https://disk.yandex.ru/d/zM16-qlzUU3bcQ
В архиве простой пример по проблеме.
Исходники на Delphi + откомпилированная библиотека
папку 'test' нужно положить в ..\libs
В примере по единственной команде создается
библиотечный макрообъект в виде прямоугольника
если макро редактировать по дубльклику
на панели свойств появятся два контрола 'Ширина' и 'Высота'
с выпадающими списками значений из базы данных
меняя значение 'Ширина', состав списка у контрола 'Высота'
изменяется как надо.
Если редактировать свойства макро просто выделив его мышкой
то в панели параметров тоже появятся два соответствующих свойства
вот тут не работает. Выбирая значение свойства 'Ширина'
состав списка свойства  'Высота' не обновляется.
В качестве проверки во всплывающем сообщении выводится
состав массива значений назначаемого контролу 'Высота'
в функции UpdateProperty

 

Gruden

+ Благодарностей: 1

A.n.d.r.e.w

Добрый день.
Да так!
Заметно промаргивание
как будто мы развыделяем
и снова выделяем наш макро ))
Свойства обновляются все.
В общем вариант рабочий, но хотелось
бы услышать подтверждение того, что
как должно - не работает не только у меня.