Пользовательский интерфейс. Обмен опытом.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение AbakAngelSoft » 25.01.2010 19:05:43

qivi писал(а):А чем так плохо окно фиксированного размера? Речь не идёт же обо всех окнах подряд, но есть элементы приложения которые лучьще что б имели фиксированный размер окна?

Приведите пример где лучше - в splash окне?

qivi писал(а):А "вымарать" модальность для меня вообще откровением стало, нет кучу форточек аш глаза разбегаются я и сам не люблю но использование модульных окон с умом делает приложение более удобным, структурированным, более нативно понятным пользователю... а категорический отказ от них в графическом приложении чуть больше маленькой утилитки приведёт к хаусу...

модальность это сокрытие информации от пользователя и ограничение его в действиях, установка рамок. Она не делает
приложение более удобным, структурированным, более нативно понятным пользователю...
а как раз наоборот.
Мы привыкли к модальности потому что так удобнее программистам - пользователь будет гулять только по отведенной территории с колючей проволокой и вышками автоматчиков - пользователю это не совсем удобно, наручники давят.

Добавлено спустя 2 минуты 38 секунд:
Padre_Mortius писал(а):ИМХО это уже проблемы освобождения ресурсов. В памяти должны быть загружены только те формы, с которыми пользователь работает

Оперативная память которая в голове у пользователя находится. Я согласен программист должен и там следить за освобождением ресурсов! :)
Лучше когда память у компьютера переполняется нежели у пользователя. imho.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение qivi » 25.01.2010 20:32:21

Приведите пример где лучше - в splash окне?

1. Окно сообщения;
2. Окно подтверждения действия;
3. Или вот... для меня как раз сейчас актуально: в программе использую окно ввода данных состоящие из 3 лабелек и 3 эдитов, а теперь представь это окно максимезированное во весь экран. Нука подняли ручки у кого монитор 640 на 480?
Да мало ли таких случаев?!

модальность это сокрытие информации от пользователя и ограничение его в действиях, установка рамок. Она не делает приложение более удобным, структурированным, более нативно понятным пользователю... а как раз наоборот.
Мы привыкли к модальности потому что так удобнее программистам - пользователь будет гулять только по отведенной территории с колючей проволокой и вышками автоматчиков - пользователю это не совсем удобно, наручники давят.

А я вот сейчас подумал... это твое мнение абсолютно равновесно с моим, в смысле имеют равное право на жизнь. Либо мы просто с разных позиций смотрим на эти вещи, либо думаем о разных ситуациях. Взять тот же лазарус - ярчайщий представитель модульной сборки приложения и не так много тех кто на нго бочку катит (хотя мне как раз его компоновка не особо нравится особенно с тех пор как я мигрировал на Линукс).
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение FedeX » 25.01.2010 20:43:57

Лучше когда память у компьютера переполняется нежели у пользователя.

+1
А "вымарать" модальность для меня вообще откровением стало

Сейчас во многих известных продуктах стало популярным по этой причине делать настройку, к примеру, каких-нибудь опций программы не в модальном окне, а в отдельной выдвигающейся по нажатию хрестика панельке, в главном окне, например, или чтобы было окно с настройками, но оно не было модальным (второй вариант всё же чаще). Или например сообщения об ошибках не в модальных окнах, а где-то внизу программы надписью с красным цветом.. это всё к примеру, не обязательно так, просто в известных проектах уже взялись за это (Google Chrome, Skype etc.. поняблюдайте за ихними интерфейсами).
А что за критические секции? Как с ними будет выглядеть код?

Они избавляют от множества трудноотлавливаемых ошибок, возникающих, когда несколько потоков одновременно изменяют одни данные. Весь приведённый код функции Timer1.Timer неплохо бы обрамить в EnterCriticalSection(CS) ......LeaveCriticalSection(CS), и в потоке при доступе к данным и изменении состояния потока тоже.. Предварительно конечно надо создать эту CS (InitCriticalSection), а в конце уничтожить DoneCriticalSection.
1. Окно сообщения;
2. Окно подтверждения действия;

1,2,3: а теперь проверьте как эти окна отображаються в большинстве гномовских программ под Линуксом - потягайте их за края, помаксимизируйте :wink:
3. Или вот... для меня как раз сейчас актуально: в программе использую окно ввода данных состоящие из 3 лабелек и 3 эдитов, а теперь представь это окно максимезированное во весь экран. Нука подняли ручки у кого монитор 640 на 480?

В том-то и дело у меня допустим моник 640*480, а вы возьмёте и сделаете такую форму шириной в 700 - части мне совсем не видать будет если только вы не предусмотрели ресайзинг формы с пропорциональным сжатием эдитов (мне и ширины в одну букву хватит чтоб ввести хоть и неудобно то что мне нужно)
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение WAYFARER » 25.01.2010 20:54:43

FedeX писал(а):Они избавляют от множества трудноотлавливаемых ошибок, возникающих, когда несколько потоков одновременно изменяют одни данные. Весь приведённый код функции Timer1.Timer неплохо бы обрамить в EnterCriticalSection(CS) ......LeaveCriticalSection(CS), и в потоке при доступе к данным и изменении состояния потока тоже.. Предварительно конечно надо создать эту CS (InitCriticalSection), а в конце уничтожить DoneCriticalSection.

А можно небольшой примерчик, если конечно не сложно?

В том-то и дело у меня допустим моник 640*480, а вы возьмёте и сделаете такую форму шириной в 700 - части мне совсем не видать будет если только вы не предусмотрели ресайзинг формы с пропорциональным сжатием эдитов (мне и ширины в одну букву хватит чтоб ввести хоть и неудобно то что мне нужно)

Это проблема вполне актуальна. Либо на форме ничего не видать, либо (очень часто сталкивался) по правому и нижнему краям рисуются скролбоксы... в итоге работать невозможно. Но еще хуже, когда размер окна не фиксирован, а у элементов на форме размер и положение как раз фиксированные - на мой взгляд порнография еще та. Размеры и положения окна и элементов на нем должны рассчитываться автоматически при создании формы в зависимости от разрешения экрана и при ресайзе этого же окна.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение qivi » 25.01.2010 21:09:31

например, или чтобы было окно с настройками, но оно не было модальным

А это как реализуется?

Всё равно не понимаю почему модальные окна вдруг стали воплощением зла... ну допустим вот сейчас передо мной броузер мозила, и я как яркий представитель пользователей ни вижу ни заборов с колючей проволоки, ни башен с пулемётами в том что если я хочу его перенастроить его, я нажимаю "Правка=>Настройки" и вылазит это самое зло - модальное окно... но для меня (лично для меня) это очень удобно - ведь мне предоставили логически изолированный бокс сконцентрировавший на себе все настройки... и собственно в чём зло? И от чего у юзера вдруг память отшибёт (если она конечно изначально была)?
1. Окно сообщения;
2. Окно подтверждения действия;

1,2,3: а теперь проверьте как эти окна отображаються в большинстве гномовских программ под Линуксом - потягайте их за края, помаксимизируйте :wink:
3. Или вот... для меня как раз сейчас актуально: в программе использую окно ввода данных состоящие из 3 лабелек и 3 эдитов, а теперь представь это окно максимезированное во весь экран. Нука подняли ручки у кого монитор 640 на 480?

В том-то и дело у меня допустим моник 640*480, а вы возьмёте и сделаете такую форму шириной в 700 - части мне совсем не видать будет если только вы не предусмотрели ресайзинг формы с пропорциональным сжатием эдитов (мне и ширины в одну букву хватит чтоб ввести хоть и неудобно то что мне нужно)


Я например 1 и 2 в своих программах использую нестндартные а оформленные в своём стиле. А 3 у меня такого размера что и на 640 Х 480 корректно отобразится, а теперь представте это окно на моём не столь уж и большом 1280 Х 800 мониторе... только представте эти 3 лабели и 3 эдита пусть даже не фиксированного положения и размера размазанные по всей этой пустой площади?

Ну я ж о том говорю всему своё место... не стоит так категорично "Это зло - во втопку!!!"
Последний раз редактировалось qivi 25.01.2010 21:25:37, всего редактировалось 3 раз(а).
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение WAYFARER » 25.01.2010 21:17:09

Модальные окна хорошо там где надо, qivi, прочитав вас пост ткнулся "Правка=>Настройки" в FireFox - Окно открылось, случайно щелкнул мышкой по панели и окно параметров спряталось на второй план (Не модальное оно). Окон открытых насчитал 14 штук, пока среди них нашел нужное - прошло пол минуты как минимум. Так что ну его нафиг. Лучше такие вещи делать модально.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение FedeX » 25.01.2010 21:33:32

Про память пользователя AbakAngelSoft немного другую модальность имел ввиду (прочитайте внимательнее).
А насчёт окон меня вот к примеру достаёт, когда я открываю какое-нибудь окно, затем хочу не сохраняя ничего закрыть всё приложение к примеру, я машинально тянусь к хрестику в правом углу основного приложения, ан нет, по центру мигает ещё какое-то окно (хорошо что в мозиле оно одно а не скажем два/три/четыре..), которое именно требует (а не акцентирует) к себе внимания. А в приложении Майкрософт ещё бы задали вопрос: "а вы действительно хотите сохранить/не сохранять эти настройки?", представляю как какая-то бабушка в истерике кликает все эти кнопки, а оно всё-равно не закрываеться и требует, требует требует к себе внимания!... :D Повторяю это утрировано, и это не означает что сейчас все ринулись переделывать свои окна настройки параметров, но задуматься стоит, я лиш говорю что это не вполне удобно. Для примера как можно всё переделывать советую посмотреть на Google Chrome или на многие приложения для iPhone и Mac OS.
только представте эти 3 лабели и 3 эдита пусть даже не фиксированного положения и размера размазанные по всей этой пустой площади?

Опять таки советую посмотреть как это реализовано в передовых с точки зрения интерфейса приложениях.
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение qivi » 25.01.2010 22:42:30

В том-то и дело у меня допустим моник 640*480, а вы возьмёте и сделаете такую форму шириной в 700 - части мне совсем не видать будет если только вы не предусмотрели ресайзинг формы с пропорциональным сжатием эдитов (мне и ширины в одну букву хватит чтоб ввести хоть и неудобно то что мне нужно)


Да, кстате в Линуксе есть такая полезная штука, нажимаем и держим альт + левую кнопку мыши на любом месте окна (невлезшего в разрешение экрана) и тащим его в любую сторону как нам удобно.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение Padre_Mortius » 25.01.2010 23:47:13

По поводу модальности окон тоже вставлю свои две копейки. Кучу раз сталкивался с ситуацией когда у модального окна выставляют параметры
Код: Выделить всё
ShowInTaskBar:=stNever
и при этом модальное окно можно свернуть (не установлен параметр FormStyle в fsStayOnTop ). В итоге если данное окно появляется либо в свернутом виде, либо пользователь умудряется его засунуть под другое такое же окно. то достать верхнее окно надо еще постараться
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение Climber » 26.01.2010 15:20:40

1. О модальности.
Модальность в общем случае – зло. Но возможны исключения. Если одно модальное окно вызывает второе модальное окно – это зло без исключений. :twisted:
Если пользователю что-то нужно, то лучше дать ему это в том окне, в котором он в данный момент работает.
А конкретные рекомендации стоит давать только для конкретных задач.
2. О размерах окон.
Если окно состоит из чекбоксов, статического текста и т. п. – то пусть оно будет фиксированным. Если его растягивать, то появится куча некрасивого пустого места.
Если окно содержит поля МЕМО, гриды, TreeView и тому подобные вещи, или получает данные от пользователя – вот его лучше не фиксировать.
3. О диалоге с пользователем.
Диалога быть не должно. Пользователь должен вести монолог. А программа должна выполнять. И что-то предлагать, только когда пользователь сам попросит. А еще программа должна уметь предвидеть действия пользователя.
Например, рассмотрим Excel. Я ввожу формулу длинной 300 - 400 знаков с кучей скобок и функций. Жму Enter. Excel выдает сообщение: формула неправильная, напишите лучше так – и далее следует вариант от Excel. И три кнопки – принять предложенную формулу, отредактировать свою и посмотреть справку. Вопрос на засыпку: сколько здесь ошибок? Ой, много…
Excel может в любой момент проверить формулу и перепроверять после ввода каждого символа. Зачем тогда окно?
Excel не даст мне сохранить неправильную формулу. Т. е. отложить «на потом» написание сложной формулы я не могу. Можно, конечно, апостроф в начале строки поставить, и тогда Excel перестанет считать этот текст формулой, - но кто ж про эту возможность знает? Никто не знает, и она не очевидна.
Excel предлагает мне свой вариант, но при этом я должен сам определить, чем он отличается от моего варианта. А как? Никакой возможности для этого нет, кроме как глазами прочитать 300 – 400 значков и сравнить…
Итого, как выглядел бы Excel моей мечты: во время ввода формулы рядом отсвечивали бы три кнопки (там, где сейчас галочка и крестик): те же галочка и крестик, что и сейчас, и еще вопросик – вызов справки (мне она нафиг не сдалась, но вдруг кому поможет). Крестик отменяет ввод, галочка сохраняет формулу (даже неправильную!), у неправильной формулы не вычисляется значение, галочка имеет зеленый цвет при правильной формуле и красный при неправильной, а если уж совсем сильно хочется подсказать пользователю, где в формуле пропущена скобка – выделять ее так, чтобы у пользователя на ее поиск ушло не больше 2 секунд.
Все это справедливо для Excel 2003, а 2007-м я пока не пользовался. Но что-то сомневаюсь, что стало лучше. :roll: Хотя, говорят, в Microsoft потратили на исследования юзабилити 3 миллиарда баксов. Врут, наверно, я бы за 3 миллиарда придумал что-нибудь покруче. Ну то есть уже придумал, см. выше :wink: Миллиарды можно заносить прямо ко мне домой...
4. Как сделать красиво?
Надо самому пользоваться своей программой. Выслушивать критику от других. Работая с другими программами, подходить к ним с позиции презумпции собственной невиновности и придираться, придираться, придираться… Ну и самому так не делать.
Никогда не делать так, как делают разработчики Open Office. Они тупо передирают функциональность Excel. Причем с теми же самыми ошибками, плюс своих добавляют.

Я стараюсь применять эти правила с теми или иными оговорками. Пока вроде неплохо получается.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение qivi » 26.01.2010 16:06:30

Если пользователю что-то нужно, то лучше дать ему это в том окне, в котором он в данный момент работает.

Так срочно переписываем Лазарус!!!! :)

Хотя, говорят, в Microsoft потратили на исследования юзабилити 3 миллиарда баксов. Врут, наверно, я бы за 3 миллиарда придумал что-нибудь покруче. Ну то есть уже придумал, см. выше :wink: Миллиарды можно заносить прямо ко мне домой...


Да брось ты... это месячные расходы микрософта на пивасик русским эмигрантам холдинга!
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение AbakAngelSoft » 26.01.2010 16:43:00

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

А теперь представьте что разработчики мозилы сделали-бы это окно модальным:
У вас в двух вкладках открыты страницы с описанием настройки браузера на использование прокси сервера. А работать с ними не возможно!!!
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение dunin » 26.01.2010 16:54:33

AbakAngelSoft писал(а):...
А теперь представьте что разработчики мозилы сделали-бы это окно модальным:

У меня начинают закрадываться смутные подозрения, что AbakAngelSoft понимает термин "модальное окно" как-то по своему...
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение AbakAngelSoft » 26.01.2010 16:59:25

Модальное окно не дает переключиться на вызывающее окно, всегда находится поверх оного. Что неправильно?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение dunin » 26.01.2010 17:56:14

AbakAngelSoft писал(а):Модальное окно не дает переключиться на вызывающее окно, всегда находится поверх оного. Что неправильно?

А у "браузера мозилы" окно с настройками разве уже не модальное?
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

Рейтинг@Mail.ru