Страница 1 из 1

AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Сб июн 02, 2018 11:03 am
firstcalled
Здравствуйте!

Возникла проблема на ровном месте, использую компонент AlmDbViewCtrl для просмотр архивных алармов, среди прочих свойств компонента есть SpecificTime, которое может принимать значения 0 или 1. Если задаем ему значение 1, то можем вручную выбирать временной диапазон через свойства StartTime и EndTime. Проблем в том, что я никак не могу изменить это свойство из скрипта, пишу так:
AlmDbViewCtrl1.SpecificTime = 1;
В окне создаю поле, отображающее состояние этого свойства компонента, но оно не меняется никак. Я ума не приложу, что сделать? Вроде бы все просто и понятно, но не получается изменить данное свойство. Есть идеи?

p.s. Получается, что я не могу вообще изменить никакое свойство компонента, обращаясь напрямую из скрипта, пытался Duration поменять, ноль реакции. Есть ли какое-то свойство, блокирующее такую работу?

Re: AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Сб июн 02, 2018 1:43 pm
Генератор зла
1. Правильная запись:
#AlmDbViewCtrl1.SpecificTime = 1;
2. Убедитесь, что на момент выполнения команд скрипта сам ActiveX открыт на экране.

Re: AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Сб июн 02, 2018 1:52 pm
firstcalled
Генератор зла писал(а):1. Правильная запись:
#AlmDbViewCtrl1.SpecificTime = 1;
2. Убедитесь, что на момент выполнения команд скрипта сам ActiveX открыт на экране.



Да, Вы правы, я просто опустил знак #. Так все написано согласно синтаксису. Компонент в том же окне, где и скрипт, привязанный к кнопке. Вообще я тут поэкспериментировал и понял, что я вообще не могу менять свойства этого компонента, да и не только этого, к примеру решил "поиграться" с AlarmViewerCtrl, создал компонент, решил вывести на форму его первое свойство и изменить:
#AlarmViewerCtrl1.AckAllMenu = 1;
При этом в документации сказано, что это свойство принимает два значения: 0 и 1. Но я не могу изменить его. При этом если вывести его значение на экран, то вообще выводится -1. Тут какая-то системная ошибка или настройка, на связанная с конкретным компонентом, по всей видимости.

Re: AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Сб июн 02, 2018 3:37 pm
Larrrik
Не дайте диагнозу себя обмануть )
На самом деле значение свойства меняется, просто эти изменения не отображаются в поле в рантайме (так уж это устроено).
Для проверки попробуйте следующее: создайте memory discrete tag и в скрипте окна WhileShowing присваивайте ему значение данного свойства (скажем раз в 100 мсек для оперативности).
А в поле выводите отображение не свойства, а этого тега.
Увидите, что все работает как должно.

Re: AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Сб июн 02, 2018 4:44 pm
firstcalled
Larrrik писал(а):Не дайте диагнозу себя обмануть )
На самом деле значение свойства меняется, просто эти изменения не отображаются в поле в рантайме (так уж это устроено).
Для проверки попробуйте следующее: создайте memory discrete tag и в скрипте окна WhileShowing присваивайте ему значение данного свойства (скажем раз в 100 мсек для оперативности).
А в поле выводите отображение не свойства, а этого тега.
Увидите, что все работает как должно.

Спасибо! Вы оказались правы!

Re: AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Пн июн 04, 2018 12:20 pm
Генератор зла
После изменения свойств компонента AlmDbViewCtrl необходимо вызывать метод #AlmDbViewCtrl.Refresh()
Тогда можно увидеть изменённый компонент.

Re: AlmDBViewtrl + SpecificTime

СообщениеДобавлено: Пн июн 25, 2018 8:34 am
firstcalled
Генератор зла писал(а):После изменения свойств компонента AlmDbViewCtrl необходимо вызывать метод #AlmDbViewCtrl.Refresh()
Тогда можно увидеть изменённый компонент.

Спасибо!