УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

Некоректне відкриття сторінки в контейнері (box)


Автор Повідомлення
Повідомлення створено: 10. 11. 2023 [20:33]
Dzub
Влаислав Дзюба
Автор теми
Зареєстрован(а) с: 10.11.2023
Повідомлення: 3
Операційна система Ubuntu 22.04
Версія OpenScada 1.0, 0.96
Опис проблеми
Сторінка відкривається не в
контейнері а глобально.
При цьому в контейнері джерело
відкриття лишається пустим.

Умови виникнення
Періодичність - часто
Виникає виключно при
генерації події натиснення
на об'єкт в скрипті основної сторінки
Через attrSet("event", "key_mousePresLeft")
При безпосередньому натисненні на
об'єкт проблеми не виникає - сторінка
відкривається нормально.
Найчастіше виникає після змінення
користувача через userSetVis
Повідомлення створено: 10. 11. 2023 [22:19]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3743
"Dzub" wrote:

Умови виникнення
Періодичність - часто

У мене ніколи.

"Dzub" wrote:

Виникає виключно при
генерації події натиснення
на об'єкт в скрипті основної сторінки
Через attrSet("event", "key_mousePresLeft")

Це стандартна поведінка, тобто таке є у коді основної сторінки?
До речі, там є код демки, яка відкриває майже все і що НІКОЛИ не призводило до відкриття глобально!

"Dzub" wrote:

При безпосередньому натисненні на
об'єкт проблеми не виникає - сторінка
відкривається нормально.

Бо було-б давно виправлено.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 27. 11. 2023 [14:46]
Dzub
Влаислав Дзюба
Автор теми
Зареєстрован(а) с: 10.11.2023
Повідомлення: 3
спробував рекомендований метод uiCmd таким чином:

ParList = this[LastKey].attr("evProc").split(":");
this.ownerSess().uiCmd("open", ParList[ParList.length-1], this.attr("path"));

Тепер ппроблема виникає стабільно. Раніше виникала тільки при зміні користувача.

Треба уточнити що ця команда викликається при відкритті сторінки в елементі BOX, прицьому сама сторінка включає в себе також елемент BOX, в якому має відкритися сторінка, що визивається через uiCmd
Повідомлення створено: 27. 11. 2023 [15:01]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3743
"Dzub" wrote:

Треба уточнити що ця команда викликається при відкритті сторінки в елементі BOX, прицьому сама сторінка включає в себе також елемент BOX, в якому має відкритися сторінка, що визивається через uiCmd

Таке не працюватиме і не повинно, бо коли ви відкриваєте першим кадр глибоко всередині, то для його вкладення-вбудови просто ще не існує-зареєстровано контейнеру.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 27. 11. 2023 [15:20]
Dzub
Влаислав Дзюба
Автор теми
Зареєстрован(а) с: 10.11.2023
Повідомлення: 3
А як можно перевірити що контейнер вже створено?
Повідомлення створено: 27. 11. 2023 [15:31]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3743
"Dzub" wrote:

А як можно перевірити що контейнер вже створено?

Власне, не відкривати і не здійснювати жодних змістовних і зовнішніх дій у конструкторі (за f_start), бо тут сторінка може бути ще не доступна для зворотного підключення до контейнеру.
Потім, бажано використовувати одну головну сторінку, яка відкривається першою, а відтак і завжди доступна. Тобто не змінювати головну сторінку.
Стосовно перевірити, то Користувацьке API вам завжди у допомогу — http://oscada.org/wiki/Special:MyLanguage/Documents/User_API

Learn, learn and learn better than work, work and work.



6002