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

Avatar
  • обновлен
  • Спасибо

Добрый день!

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

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

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

Прикрепленные ответы
Avatar
СИМП Лайт (тех поддержка)
  • Ответ

День добрый.

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


Avatar
СИМП Лайт (тех поддержка)
  • Спасибо

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

Avatar

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


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

Avatar

Добрый день!

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

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

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


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

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

Avatar
СИМП Лайт (тех поддержка)
  • Ответ

День добрый.

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


Avatar

GetMnemoControl

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

Avatar

function GetMnemoControl(AName: String): TWinControl;

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

Avatar

Добрый день!

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

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

Avatar

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


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

Avatar

Добрый день!


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

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


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


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


2) Кнопки

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


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

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

Avatar
Цитата от Кондратенко Анатолий Викторови

Добрый день!


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

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


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


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


2) Кнопки

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


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

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

Добрый день!


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

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

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

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


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


2) Кнопки

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


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