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

InTouch и ActiveX

СообщениеДобавлено: Вт ноя 25, 2008 10:25 pm
skom
Добрый день, возникла следующая проблема:
для отображения трендов я использую Active Trend (из Active Factory) в виде ActiveX-объекта. Окно с трендом вызывается из quick-функции следующего вида:
Код: Выделить всё
{начало функции}
Show "Тренд";
#aaHistClientTrend2.FileOpen(InfoInTouchAppDir() + "\Trend\" + TagName + ".aaTrend");
TrendName.Name = TagName + "\Desc";
{конец функции}

Проблема состоит в том, что скрипт пытается записать в свойство FileOpen значение раньше чем ActiveX прогрузился на форме. Как бы вы решили подобную задачу?
P.S. я пробовал отслеживать состояние ActiveX в цикле, но InTouch выдает ошибку, что нельзя обращаться к объектам активикс в таких конструкциях. Версия InTouch 9.5.

СообщениеДобавлено: Пт ноя 28, 2008 1:55 am
skom
В итоге решил проблему следующим способом - поставил настройку в Window Viewer чтобы все окна хранились в оперативной памяти.

СообщениеДобавлено: Пн дек 01, 2008 4:04 pm
Eraser
может лучше прописать

#aaHistClientTrend2.FileOpen(InfoInTouchAppDir() + "\Trend\" + TagName + ".aaTrend");
TrendName.Name = TagName + "\Desc";

в стартовом скрипте окна, где расположен сам тренд? тогда уже компонент вроде как загружен

СообщениеДобавлено: Вт дек 16, 2008 12:11 am
skom
И я так думал, что загружен. Пришлось решить проблему достаточно дурацким способом - окна все храню в памяти, а не загружаю с диска (в настройках Window Viewer есть такая настройка) и при открытии проекта программно открываю и закрываю окно с трендом.