0
Спасибо

Работа с окнами в версии 4.4.1

Кондратенко Анатолий Викторови 4 года назад в Монитор обновлен СИМП Лайт (тех.поддержка) 4 года назад 14

Добрый день!

Есть основное окно (постоянно открытое на экране) и есть ряд вторичных окон, которые вызываются при необходимости. Для удобства закрытия вторичного окна в верхнем правом углу ставлю большую кнопку "Закрыть" (ну не могут некоторое пользователи попасть на маленький крестик). Сначала кнопка закрывала только то окно, на котором стояла. Затем, когда количество вторичных окон стало неприлично большим, чтобы не плодить количество скриптов сделал один большой скрипт:
{
if(CheckOpenMnemo("ааа")) CloseMnemo("ааа");
if(CheckOpenMnemo("ббб")) CloseMnemo("ббб");
...
if(CheckOpenMnemo("ююю")) CloseMnemo("ююю");
if(CheckOpenMnemo("яяя")) CloseMnemo("яяя");
}
Это стало еще и полезным приобретением, поскольку пользователи часто не закрывали вторичное окно после его использования, а просто переходили на основное окно. Это не критично, конечно, но ровно до того момента как пользователю не понадобится вновь заглянуть на вторичное окно. А вот тогда и начинается концерт: пользователь нажимает на основном окне кнопочку и пытается вызвать вторичное окно - а оно не вызывается. Резко снизилось количество претензий типа "...ничего не работает...". Но я увлекся - перехожу к вопросу.

Как только поставил версию 4.4.1.705 заметил, что кнопка "Закрыть" работает только на сервере (опросной станции). На клиенте она не работает вовсе. На предыдущей версии всё работало.

С уважением, Кондратенко Анатолий
Новочеркасск

Ответ

Ответ

День добрый.

В силу особенностей графического движка SIMP, локальными являются функции: CheckOpenMnemo, GetMnemoControl.


Спасибо

спасибо за сообщение, проверим и поправим

День добрый, Анатолий.


Ранее на форуме уже поднимался этот вопрос, функция CheckOpenMnemo работает только на серверной стороне системы, соответственно для клиентов проверка CheckOpenMnemo работать не будет, попробуйте использовать CloseMnemo без CheckOpenMnemo.

Добрый день!

Как говорила Алиса: "Всё страньше и страньше! Всё чудесатее и чудесатее!".

А где можно узнать, какие из функции являются локальными, а какие нет ?

А то сейчас затеялся сопряжением SL с SQL FireBird (необходим архив неполадок и отклонений работы технологического оборудования ), потрачу силы и время, а потом окажется, что "это на клиенте не работает". Будет очень неприятно!


С уважением, Кондратенко Анатолий

Новочеркасск

Ответ

День добрый.

В силу особенностей графического движка SIMP, локальными являются функции: CheckOpenMnemo, GetMnemoControl.


GetMnemoControl

Что это за функция ? Такое название в документации нигде не упоминается.

function GetMnemoControl(AName: String): TWinControl;

получение мнемосхемы по имени AName. Функция тестовая, поэтому нет упоминания в документации.

Добрый день!

Отключил все CheckOpenMnemo и закрываю окна просто с помощью CloseMnemo.

На сервере всё работает, на клиенте - нет!

Добрый вечер.


Прошу прошения за задержку с ответом. Проверим у себя ещё раз, по результатам отпишусь.

Добрый день!


1) Параметр канала "Контроль связи".

Цитата из справки: "... Если этот флаг выставлен, то система автоматически контролирует состояние канала. При отсутствии изменений в канале в течение 5 минут его состояние устанавливается в неактивное. На мнемосхеме это отображается заштриховкой компонента ...".


Вопрос: в канале флаг не выставлен, но заштриховка всё-равно в окне Монитора присутствует ? Как быть ? Хочется избавиться от штриховки ?


Подоплека вопроса: В цеху есть редко используемое оборудование. Вот сейчас оно выключено, и в центре мнемосхемы высвечивается этакое "грязное пятно", состоящее из изображения установки и трех индикаторов, затянутых той самой заштриховкой. Как можно избавиться от этой заштриховки: а) периодически записывать в эти каналы какую-либо информацию, но как к этому отнесутся физические каналы ? б) закрыть часть мнемосхемы "пологом" с надписью "выключено", который бы убирался при появлении в каналах установки "живой" информации, но что-то не соображу, как это сделать ?


2) Кнопки

Кнопки "Открытие мнемосхемы" и "Печать мнемосхемы" обзавелись возможностью иметь свои изображения нажатого и отжатого состояния, а кнопка "Запуск внешнего приложения" была обойдена такими подарками. Почему?


С уважением, Кондратенко Анатолий

Новочеркасск

Добрый день!


1) Параметр канала "Контроль связи".

Цитата из справки: "... Если этот флаг выставлен, то система автоматически контролирует состояние канала. При отсутствии изменений в канале в течение 5 минут его состояние устанавливается в неактивное. На мнемосхеме это отображается заштриховкой компонента ...".

Вопрос: в канале флаг не выставлен, но заштриховка всё-равно в окне Монитора присутствует ? Как быть ? Хочется избавиться от штриховки ?

Подоплека вопроса: В цеху есть редко используемое оборудование. Вот сейчас оно выключено, и в центре мнемосхемы высвечивается этакое "грязное пятно", состоящее из изображения установки и трех индикаторов, затянутых той самой заштриховкой. Как можно избавиться от этой заштриховки: а) периодически записывать в эти каналы какую-либо информацию, но как к этому отнесутся физические каналы ? б) закрыть часть мнемосхемы "пологом" с надписью "выключено", который бы убирался при появлении в каналах установки "живой" информации, но что-то не соображу, как это сделать ?


Штриховка компонента зависит не только от флага "Контроль связи", но и от "качества" переменной передаваемой в SIMP из ОРС драйвера или драйвера модбас. Какой у Вас используется драйвер?


2) Кнопки

Кнопки "Открытие мнемосхемы" и "Печать мнемосхемы" обзавелись возможностью иметь свои изображения нажатого и отжатого состояния, а кнопка "Запуск внешнего приложения" была обойдена такими подарками. Почему?


В доработке. В ближайших релизах будет.


Добрый день!

Основной поставщик данных - это OPC-сервер от OWEN

День добрый.

Скорей всего ОРС сервер отдает "плохое" качество переменной. Можно попробовать подключится сторонним ОРС клиентом и понаблюдать, какое "качество" переменной возвращает сервер.

Добрый день!

Еще раз: "...Подоплека вопроса: В цеху есть редко используемое оборудование. Вот сейчас оно выключено, и в центре мнемосхемы высвечивается этакое "грязное пятно", состоящее из изображения установки и трех индикаторов, затянутых той самой заштриховкой. Как можно избавиться от этой заштриховки: а) периодически записывать в эти каналы какую-либо информацию, но как к этому отнесутся физические каналы ? б) закрыть часть мнемосхемы "пологом" с надписью "выключено", который бы убирался при появлении в каналах

установки "живой" информации, но что-то не соображу, как это сделать ?..."

Вопрос состоит в том, что данные не поступают ( оборудование выключено ) и заштриховка здесь вполне объяснима. Она просто "не камильфо" смотрится на мнемосхеме. И убрать эти данные не могу - оборудование включатся раз в квартал - и тогда эта информация нужна. И хотелось бы элегантно повесить на элемент мнемосхемы табличку "выключено" .


С уважением, Кондратенко Анатолий

Новочеркасск


Ок. Понял. В текущей версии скорей всего не сделать. У объектов нет доступа к свойству "видимость". Учтем этот недостаток в следующих версиях.

Сервис поддержки клиентов работает на платформе UserEcho