Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Не работает ShowClient в веб интерфейсе.  (Прочитано 496 раз)

NewUser

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Добрый день, тестирую проект в веб интерфейсе, ибо банально проще перезапустить проект, чем постоянно открывать Simple Scada Client.
Создаем окно Window1, создаем кнопку Button1  и когда создаем сигнал (событие) OnClick.
Код: (delphi)
procedure Button_OnClick(Sender: TM_Control);
begin
  Window1.ShowClient(GetCientName);
end.
То событие будет корректно отрабатывать как в клиенте, так и в веб-интерфейсе.
Но если мы отойдем от этого шаблона , то ShowClient уже не будет работать в веб-интерефейсе т.е выводить окно, и не только он а еще ShowMessageClient.
1) Не будет работать если повесить на скрипт-событие Sql_error (Ошибка Sql-запроса)
2) Не будет работать если повесить на событие  OnDataChange
3) Не будет работать если создать объект ему прописать событие OnClick (вызов Button1.OnClickEvent)
Это то что нашел.
В общем событие ShowClient и ShowMessageClient в веб-интерфейсе работают почему только в событие OnClick, не важно событие какого объекта Кнопка, фигура...
хотя другие объекты не тестировал.
« Изменён: 15 Ноября 2023, 09:46:11 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3009
    • Просмотр профиля
    • Simple-Scada
Re: Не работает ShowClient в веб интерфейсе.
« Ответ #1 : 15 Ноября 2023, 09:43:36 »
Здравствуйте.

Все верно, см. описание функции GetClientName в руководстве по ссылке. События которые Вы описали вызываются сервером скады, а не клиентом (и будут вызываться даже если к серверу не подключено ни одного клиента), поэтому получить имя клиента (как и любую другую информацию о клиенте) не получится. Поэтому GetClientName в них будет возвращать пустую строку и окно будет выдано только на клиентах у которых имя равно пустой строке. Для десктоп клиентов имя задаётся в настройках, через поле "Имя этого клиента". Для веб-клиентов генерируется уникальное имя.
Используйте метод ShowAll, если нужно отобразить окно на всех подключенных клиентах.
« Изменён: 16 Ноября 2023, 18:38:38 от Simple-Scada »