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

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

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

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

Сообщение Brainenjii » 29.01.2010 15:14:39

Потому что у некоторых траффик платный... А зайти в настройки, чтобы нажимать там кнопочку "Не скачивать обновления автоматически в случае сбоев" - не каждый догадается, особенно если до сбоя никаких порывов выйти за обновлением прога не выказывает. И если вдруг она скачает 500Мб обновления на платном, но быстром ADSL ( у нас такое есть) ничего не сказав - пользователь будет не рад, наверное... Пусть уж лучше спрашивает
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение AbakAngelSoft » 29.01.2010 15:22:37

В главном окне программы в статус баре появляется конвертик.
При щелчке на него раскрывается небольшой список.
"Имеются критические обновления, 500мб. нажмите чтобы скачать или настроить службу автоматических обновлений."

Только не надо отвлекать пользователя от работы моргающим конвертом, всплывающим облачком и тем более модальным диалогом!

Добавлено спустя 2 минуты 14 секунд:
Brainenjii
может поучавствуете: http://freepascal.ru/forum/viewtopic.php?f=10&t=5385 http://code.google.com/p/pascalbugreports/
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

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

Сообщение Vadim » 29.01.2010 15:43:55

AbakAngelSoft
Не стоит зацикливаться только на сообщениях об ошибке. Про ошибку я написал только потому, что это случилось буквально только что и слишком близко моему сердцу. :)
Если взглянуть на проблему шире, то несмотря на обилие в программе пользовательских контролов, сообщения, которые выдаются пользователю, малоинформативны. С пользователем должен идти диалог, общение. Только тогда пользователь полюбит свою программу и не будет ситуаций, когда пользователь в раздражении жмёт на любые кнопки, лишь бы избавится от окна с непонятным для него сообщением. И тогда программисты перестанут жаловаться, что пользователь не читает ихние сообщения. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение AbakAngelSoft » 29.01.2010 15:49:39

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

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

Сообщение Brainenjii » 29.01.2010 16:44:21

Какая классная штука - Application.OnException ^_^ Ещё бы узнать, из какой процедуры это самое Exception возникло...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение FedeX » 29.01.2010 18:33:32

Brainenjii писал(а):Какая классная штука - Application.OnException ^_^ Ещё бы узнать, из какой процедуры это самое Exception возникло...

По-идее, если в TException запихнуть ещё одно текстовое проперти и в TException.Create возвращать туде результат описанной здесь функции (http://keyfighter.blogspot.com/2009/07/blog-post.html), то можно и номер линии узнать..
Но.. надо будет компилировать программу с -gl что сами знаете насколько увеличит её вес, а во вторых чтобы это реализовать надо перекомпилировать rtl.. а я если честно ума не приложу как его компилировать, все make-файлы возвращают какую-то неудобоваримую хрень, наподобие описанной выше :evil:

Вот к примеру при попытке скомпилировать из Лазарус, единственная строка в сообщениях компилятора:
system.pp(1,1) Fatal: Compilation aborted

Это нормально? :roll:

или вот:

C:\pp\rtl>fpcmake
Processing Makefile.fpc
i386-win32 requires:
Writing Makefile

:shock:
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

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

Сообщение Brainenjii » 01.02.2010 11:46:49

Кстати, к вопросу о модальности... Ввёл пользователь кучу изменений, но не сохранил и попытался закрыть форму с изменениями. Должна программа спросить - действительно ли он хочет выйти без сохранения, или просто забыл нажать Ctrl+S? И как это должно быть, если не модальной формой? Откуда-то сбоку выдвигаться панелька? Но выскакиывающий вопрос - горРаздо привычней(тот же MSO, OO.o, да и вообще - примеров - масса)

З.Ы. а ещё можно вспомнить всякие прелести современных DE (вчера поставил KDE4 с эффектами, да и в W7 что-то подобное есть) - с затемнениями окон под подальными формами и прочие повышения наглядности... Так что модальность пропагандируется, можно сказать ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение Climber » 01.02.2010 12:48:42

Brainenjii
Я уже говорил и повторю еще раз. У Купера в книге "Об интерфейсе" есть готовое решение - как должна организовываться работа с файлами. Одна из глав этому посящена, дома посмотрю, как называется.
Так вот. Там все абсолютно по-другому. Никаких окон - ни модальных, ни немодальных. Пользователя никто не беспокоит вопросами. Пользователь может жать на что угодно, забывать о чем угодно. Но при этом ничего не теряется.
Звучит как фантастика?
А все на самом деле просто. Порассуждаем так, как рассуждал автор. :idea:
Первый вопрос, который нужно задать себе: зачем пользователь вообще сел за компьютер? Наверно, чтобы поработать.
Он долго работал с данными. Неужели для того, чтобы выкинуть потом все результаты? Конечно нет!
Как соотносится количество случаев, когда пользователь хочет выйти без сохранения, и количество случаев, когда пользователь хочет выйти с сохранением? Примерно как 1:100.
Следовательно, что захочет сделать пользователь, когда закончит работу? На помощь приходит Капитан Очевидность: "Пользователь захочет сохраниться!!!"
А если я уже сейчас знаю, что пользователь хочет - почему бы это не сделать???
Код: Выделить всё
TMainForm.OnClose(Sender: TObject);
begin
  SaveAllUserData;
end;
На тот один случай из ста, когда пользователь передумал: сохраняем старые данные во временный файл. Пользователь вышел - удаляем временный файл. Пользователь выбрал пункт меню "Выйти без сохранения" - удаляем всё, что он сделал, а в качестве основного файла сохраняем старый - без изменений.
И не надо никаких окон. :wink:

Добавлено спустя 3 минуты 36 секунд:
P. S. Я во всех своих программах теперь буду делать именно так (уже делаю, сам пользуюсь, офигительно удобно). Когда пользователи привыкнут к моим программам, к моим конкурентам они будут относится с отвращением. Ну вы поняли, кто в итоге победит :wink: Технологии прошлого века бессильны, их время прошло.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

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

Сообщение Brainenjii » 01.02.2010 13:03:48

Вот именно ^_^ Пользователями надо привыкать. Меня бы раздразило, если бы я дико накосячил в дипломе, попытался выйти из Writer'a, а он не спросив - сохранил ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение GrayEddy » 01.02.2010 13:20:00

+1 :)
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

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

Сообщение Climber » 01.02.2010 14:16:15

Brainenjii писал(а):Меня бы раздразило, если бы я дико накосячил в дипломе, попытался выйти из Writer'a, а он не спросив - сохранил ^_^
Можно подумать, в теперешнем ворде ты неспособен по привычке нажать "нет" вместо "да" :wink: . Не верю, сам сто раз нажимал. :oops:
А, забыл сказать. Купер владеет софтовой конторой, они тоже какой-то софт пишут. Так они реализовали возможность отката изменений и хранения истории правок после сохранения файла и выхода из программы, но это уже высший пилотаж развития концепции "user-friendly", мне это этого еще далеко :roll: В photoshop, как я слышал, была то ли такая же хрень, то ли попытки ее реализовать, чем дело у Adobe закончилось, я не в курсе.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

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

Сообщение sign » 01.02.2010 15:15:27

Я в своих программах делаю так.
Как только что-то изменилось, что следует сохранять в файл, так сразу внизу появляется заметная пользователю кнопка с рисунком (рядом с кнопкой - выход) - со смыслом - сохранить и выйти. И ещё небольшая кнопочка отдельно - сохранить.
Нажал сохранить - программа скинула в файл данные и укрыла кнопки с сохранением.
И такие же реакции программы при клике на кнопку - печать - данные сохраняются, ибо напечатано.
Я даже не делаю эти кнопки не активными, я их совсем скрываю.
Если пользователь кликнуть по кнопке выйти при измененных данных ) или по крестику в правом верхнем углу окна), обязательно выскакивает модальное окно, что уверен ли он, пользователь, что хочет выйти без сохранения изменений.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

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

Сообщение Brainenjii » 01.02.2010 15:46:25

А если надо напечатать временный вариант - показать коллеге в соседнем кабинете (многие на бумаге лучше воспринимают написанное) - появляется ещё одна кнопка "Напечатать несохранённое"? ^_^ Так и прыгают кнопки на тулбарах ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение eevee » 01.02.2010 15:54:17

В практике сталкивался с таким решением выскакивания ошибок - выводится НЕМОДАЛЬНОЕ окно с сообщением об ошибке. Если честно - достало до ужаса, хочется иной раз просто убить разработчика такого способа, так как ошибка выскакивает не просто так - это раз! Во-вторых, нажимая на главную форму, иной раз ошибки просто не успеваешь увидеть, так как окно ошибки перекрывается главным окном приложения, и пытаешься дальше работать и нифига не понимаешь, почему же не работает. А оказывается, что в панели задач появилось еще одно окно, в котором вылетела ошибка. Ппц просто, удобно до ужаса... Лучше уж модальным
eevee
новенький
 
Сообщения: 63
Зарегистрирован: 29.12.2009 17:52:44
Откуда: Саратов

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

Сообщение sign » 01.02.2010 16:07:29

Brainenjii писал(а):А если надо напечатать временный вариант - показать коллеге в соседнем кабинете (многие на бумаге лучше воспринимают написанное) - появляется ещё одна кнопка "Напечатать несохранённое"? ^_^ Так и прыгают кнопки на тулбарах ^_^

В моих вариантах это бессмысленно, ибо печатаются всякие накладные и прочие интересности. И даже нет возможности отката. Понятно почему.
Будь у меня ваш случай, когда нужно печатать временные варианты, я бы не вставлял сохранение в печать. И всё.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru