AlmDBViewtrl + SpecificTime

Вопросы, не попадающие в другие разделы.

AlmDBViewtrl + SpecificTime

Сообщение firstcalled » Сб июн 02, 2018 11:03 am

Здравствуйте!

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

p.s. Получается, что я не могу вообще изменить никакое свойство компонента, обращаясь напрямую из скрипта, пытался Duration поменять, ноль реакции. Есть ли какое-то свойство, блокирующее такую работу?
firstcalled
 
Сообщения: 7
Зарегистрирован: Сб июн 02, 2018 10:53 am

Re: AlmDBViewtrl + SpecificTime

Сообщение Генератор зла » Сб июн 02, 2018 1:43 pm

1. Правильная запись:
#AlmDbViewCtrl1.SpecificTime = 1;
2. Убедитесь, что на момент выполнения команд скрипта сам ActiveX открыт на экране.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBViewtrl + SpecificTime

Сообщение firstcalled » Сб июн 02, 2018 1:52 pm

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



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

Re: AlmDBViewtrl + SpecificTime

Сообщение Larrrik » Сб июн 02, 2018 3:37 pm

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

Re: AlmDBViewtrl + SpecificTime

Сообщение firstcalled » Сб июн 02, 2018 4:44 pm

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

Спасибо! Вы оказались правы!
firstcalled
 
Сообщения: 7
Зарегистрирован: Сб июн 02, 2018 10:53 am

Re: AlmDBViewtrl + SpecificTime

Сообщение Генератор зла » Пн июн 04, 2018 12:20 pm

После изменения свойств компонента AlmDbViewCtrl необходимо вызывать метод #AlmDbViewCtrl.Refresh()
Тогда можно увидеть изменённый компонент.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: AlmDBViewtrl + SpecificTime

Сообщение firstcalled » Пн июн 25, 2018 8:34 am

Генератор зла писал(а):После изменения свойств компонента AlmDbViewCtrl необходимо вызывать метод #AlmDbViewCtrl.Refresh()
Тогда можно увидеть изменённый компонент.

Спасибо!
firstcalled
 
Сообщения: 7
Зарегистрирован: Сб июн 02, 2018 10:53 am


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5