Есть программа, в которой пользователь может создавать какие-то 3D объекты. И есть строчка внизу программы, где высвечивается инфа, что сейчас нужно сделать, а в случае неправильных данных — вспыхивает красная строка с сообщением об ошибке. Эта строка односторчная, что вполне хватало. Эта строка постепенно медленно гаснет и возвращается к той, что была до неё — то есть что нужно ввести.
И все, в принципе, работает нормально. Но появилась маленькая проблема:
В программе появились окна со скриптами. Их может быть много и они плавающие — могут налезать одно на другое. Ясно, что скрипт может быть ошибочным — нужно куда-то выводить эту ошибку. Так вот — использовать ту жу гаснущую строку плохо, так как: во-первых, строка гаснет, а во-вторых, их не может много, а пользователь может запустить несколько скрипитов, и в-третьих, сообщения ошибков из скриптов могут быть уже многострочными.
Поэтому есть два решения — в каждом плавающем окне со скриптом внизу приделать окошко с ошибкой с этом скрипте, причем негаснущее. Минусы — разбросанность сообщений об ошибках в разных местах.
Второе решение — вывести какой-то глобальных List ошибок и все туда кидать. Минусы — скрипт в обной месте — ошибка от него — в другом. Вот и никак не решу — что же делать
Подскажите
Здравствуйте, Amon_RA, Вы писали:
A_R>Есть программа, в которой пользователь может создавать какие-то 3D объекты. И есть строчка внизу программы, где высвечивается инфа, что сейчас нужно сделать, а в случае неправильных данных — вспыхивает красная строка с сообщением об ошибке. Эта строка односторчная, что вполне хватало. Эта строка постепенно медленно гаснет и возвращается к той, что была до неё — то есть что нужно ввести.
A_R>И все, в принципе, работает нормально. Но появилась маленькая проблема:
A_R>В программе появились окна со скриптами. Их может быть много и они плавающие — могут налезать одно на другое. Ясно, что скрипт может быть ошибочным — нужно куда-то выводить эту ошибку. Так вот — использовать ту жу гаснущую строку плохо, так как: во-первых, строка гаснет, а во-вторых, их не может много, а пользователь может запустить несколько скрипитов, и в-третьих, сообщения ошибков из скриптов могут быть уже многострочными.
A_R>Поэтому есть два решения — в каждом плавающем окне со скриптом внизу приделать окошко с ошибкой с этом скрипте, причем негаснущее. Минусы — разбросанность сообщений об ошибках в разных местах.
Если основное назначение программы — это написание, отладка и исполнение скриптов, то ИМХО лучше глобальный список.
Если скрипты только фича, то лучше первый вариант, т.к. использоваться эта фича будет не так часто.
A_R>Второе решение — вывести какой-то глобальных List ошибок и все туда кидать. Минусы — скрипт в обной месте — ошибка от него — в другом. Вот и никак не решу — что же делать
При показе сообщения об ошибке можно дать пользователю возможность переключиться на сбойнувший скрипт. Например, кнопка рядом с сообщением в глобальном списке.
Можно еще рассмотреть смешанные варианты — например и глобальный лист и ошибка при каждом окне. Причем последнюю возможность желательно давать отключать. Те кому скрипты нужны редко не будут отвлекаться, на глобальные списки. А те кому часто — не будут раздражаться при поиске сообщения в туче окон.
Кстати, глобальный список дает дополнительные возможности по просмотру сообщений — можно прикрутить различные фильтры, поиск и т.п.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Amon_RA, Вы писали:
A_R>Поэтому есть два решения — в каждом плавающем окне со скриптом внизу приделать окошко с ошибкой с этом скрипте, причем негаснущее. Минусы — разбросанность сообщений об ошибках в разных местах.
A_R>Второе решение — вывести какой-то глобальных List ошибок и все туда кидать. Минусы — скрипт в обной месте — ошибка от него — в другом. Вот и никак не решу — что же делать
Я бы (наверное) делал так.
Одно общее dock-окно под лог всех сообщений об ошибках — примерно как окно Output в Visual Studio. Либо как окно со списком ошибок в той же студии: таблица с колонками сообщение, скрипт, строка.
В окне скрипта имеет смысл сделать статусбар, в котором показываем последнюю ошибку и подсвечиваем её красным. Тут же в статусбаре — кнопка для перехода в общий лог. В общем логе — возможность фильтрации "ошибки только заданного скрипта".
Решение с логом в каждом окне скрипта не нравится — интерфейс получится громоздким.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>