Segnetics

Вернуться   Segnetics > Форум Segnetics > Песочница

Песочница Удалённые с форума темы

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2018, 08:21   #1
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию TabOrder

По какому принципу определяется порядок переключения элементов ввода на экране с включенным TabOrder?
Для примера, как будет происходить переключение по TabOrder на экране пикселя из вложения (красным выделены переключающиеся элементы)?
Изображения
Тип файла: jpg taborder1.jpg (86.7 Кбайт, 40 просмотров)
младшой вне форума   Ответить с цитированием
Старый 06.11.2018, 12:24   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: TabOrder

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

Программисты что-то там исследовали, когда придумывали эту функцию, много думали и так далее. А работает она так, как работает - буквально от балды.

Порядок задать невозможно. Самую очевидную вещь, которой они сами везде пользуются (и в QT и в C++ и в прочих), увидеть они не смогли за годы существования SMArt. Повлиять на них мне не удалось.


PS. Я собрал вашу схему, у меня переключался верх, правый низ, правый верх, левый низ, левый верх. Собрал ещё раз, получилось левый верх, правый низ, правый верх, верх, левый низ. Не просто "отбалды", а "рандомный отбалды". Попробовал переключить кнопки таба с вверх/вних на вправо - не работает. Запишу баг ещё раз, но...


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 06.11.2018 в 12:39
Arsie вне форума   Ответить с цитированием
Старый 06.11.2018, 12:59   #3
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: TabOrder

Цитата:
Я собрал вашу схему, у меня переключался верх, правый низ, правый верх, левый низ, левый верх.
Как-то так и у меня работало.
С точки зрения UI в данном случае логичнее было бы переключение Верх, Левый верх, Правый верх, Левый низ, Правый низ. (то есть - справа налево и сверху вниз).
На каком-нибудь другом экране было бы логичнее переключать сверху вниз и справа налево.

Почему бы тогда не сделать порядок переключения в зависимости от положения в списке объектов экрана (который также отвечает за порядок прорисовки)?
младшой вне форума   Ответить с цитированием
Старый 06.11.2018, 13:06   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: TabOrder

Цитата:
Сообщение от младшой Посмотреть сообщение
Почему бы тогда не сделать порядок переключения в зависимости от положения в списке объектов экрана (который также отвечает за порядок прорисовки)?
Я этот вопрос задавал в далёких уже 00-х годах. Но не нашёл понимания у программеров. Они СМАртом не пользуются, поэтому...



__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 15.05.2020 в 18:13
Arsie вне форума   Ответить с цитированием
Старый 06.11.2018, 22:57   #5
OlegM
Member
 
Регистрация: Apr 2017
Сообщения: 71
Благодарил(а): 0 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: TabOrder

Может их выгнать нах?
OlegM вне форума   Ответить с цитированием
Старый 07.11.2018, 01:45   #6
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: TabOrder

Собстна, удалось установить порядок.

Во вложении - проект.

Если открыть его и запустить SMArt, а потом загрузить проект в контроллер, то порядок переключения будет стандартно "рандомный". Хотя он все же не совсем рандомный. По всей видимости, порядок переключения определяется по такому же принципу, как нумерация и обработка FBD блоков и макросов в Лоджике, ориентируясь на координаты элементов.

Если же открыть проект и НЕ запуская SMArt сразу грузить его в контроллер, то порядок переключения будет иным (точно таким, каким надо мне).

Вот ссылка на видео
https://youtu.be/J_30mDYmjsQ
В первой половине стандартный для SMArt порядок TabOrder.
Во второй - измененный.

Как же так получилось?
После сохранения проекта и закрытия лоджика, открываю файл проекта блокнотом (я пользуюсь Notepad++).
Поиском нахожу тег <taborder>, смотрю что это за элементы по тегу <name> (тут я именовал элементы латиницей, т.к. кириллица в этой кодировке кракозябнутая). Поняв, что это за элемент и в какую очередь он должен включаться на экране, меняю значение TabOrder на нужное.
Так прохожу все нужные элементы на этом экране, нумерую, начиная с 0 и сохраняю файл.
Затем открываю проект Лоджиком и сразу гружу в контроллер. Если запустить SMArt, он - собака такая - выставит значения taborder по-своему.
Вот скриншот с пояснениями, что я ищу, смотрю и меняю в проекте из блокнота.
TabOrder2.png

Естественно, всё это на свой страх и риск. Метод очень неудобный, чреват порчей psl файла и сомневаюсь, что вменяемый человек будет его использовать на постоянной основе.

И поскольку в описании SMArt-части проекта уже присутствует тэг, определяющий порядок taborder, какая проблема в SMArt'е нарисовать поле ввода этого значения?

Всем спокойной ночи, сладких снов. Хорошего дня, там - на Камчатке.
Вложения
Тип файла: psl TabOrder.psl (17.4 Кбайт, 0 просмотров)
младшой вне форума   Ответить с цитированием
Старый 07.11.2018, 03:12   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: TabOrder

Цитата:
Сообщение от младшой Посмотреть сообщение
Собстна, удалось установить порядок.

И поскольку в описании SMArt-части проекта уже присутствует тэг, определяющий порядок taborder, какая проблема в SMArt'е нарисовать поле ввода этого значения?
Да, знаю этот способ. Он действительно рисковый. А проблема прежде всего в голове человека, ответственного за смарт. Во всём остальном, как видите, проблем нет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 07.11.2018, 12:06   #8
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: TabOrder

Цитата:
Сообщение от Arsie Посмотреть сообщение
Да, знаю этот способ.
Знает и не говорит. Ну что за люди то, а?

младшой вне форума   Ответить с цитированием
Старый 07.11.2018, 12:39   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: TabOrder

Цитата:
Сообщение от младшой Посмотреть сообщение
Знает и не говорит. Ну что за люди то, а?

Согласитесь, способ совсем не для рядового человека)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 08:50.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024