Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 40 [показано 10]
Грамотный интерфейс: поля ввода
Степень соответствия запросу: 43,25%
Фрагменты текста поста : ... Грамотный интерфейс: поля ввода Очень часто в программах данные вводятся в формах, содержащих множество полей: поле фамилии, имени, адреса, номера паспорта, размера обуви... ... Частично решить эту проблему позволяют контролы, принимающие ввод по маске ( MaskEdit или MaskEditBox ), но, честно говоря, им не хватает гибкости... ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Наиболее популярное на данный момент - разбить форму с десятком полей ввода на несколько форм, по два-три поля в каждом... ... Для интернета это оказывается удобным, но в оффлайновых программах, где вводимых данных гораздо больше, возникает масса проблем: необходимо предусмотреть в каждой следующей форме отображение введенных данных из предыдущих форм, чтобы пользователь мог видеть, что он уже ввел ранее... ... для изменения ранее введенных данных (например неверно введенной фамилии) необходимо сделать в формах навигацию "вперед - назад"... ... проблема "раздутия проекта" из-за создания множества по-сути бесполезных форм... ... Раскрасим поля ввода... ... На мой взгляд для решения вышеописанной проблемы необходимо разукрасить фон полей ввода... ... для поиска нужного поля они будут ориентироваться по цвету, а не читать все подряд надписи на форме... ... Раскрасим формы В продолжение идеи предлагаю раскрашивать и формы, в зависимости от выполняемых действий... ... Суть состоит в том, что для ввода новой записи в базу и для редактирования уже введенной записи как правило используется одна и та же форма... ... Так вот, если во время редактирования придать фону формы какой-нибудь оттенок (например сделать ее слегка красноватой), то пользователь, занимающийся только вводом новых данных, сразу же заметит это изменение цвета и не введет по ошибке новые данные поверх старых... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... ... Когда на форме расположено множество полей, то из-за усталости глаз, не очень хорошего зрения, слишком высокого разрешения монитора и многих других проблем возникает ситуация, когда пользователь не может сразу отпределить позицию коретки ввода - моргающая полоска может быть не заметна... ... Помочь пользователям в этом случае можно раскрасив текст в текущем поле ввода... ... Программируется такое поведение сверх-просто: как только фокус ввода передается какому-то контролу, значение его свойства " цвет текста " ( ForeColor , TextColor ) меняется на " красный " ( Color... ... Это простое дополнение даст возможность пользователю всегда точно знать, где именно находится коретка ввода и что именно нужно сейчас вводить... Подробнее: http://fit-media.com/post_1205142560.htmlЗалепа №9. Microsoft друзей не признает.
Степень соответствия запросу: 27,11%
Фрагменты текста поста : ... Голуба "Правила программирования в С и С++" (речь идет именно о C++): Цитата: Как-то раз я видел интерфейс, в котором объект "календарь" позволял пользователю интерактивно выбирать дату, щелкая мышью на каком-либо из дней, показанных на изображении календаря... ... "Календарь" затем экспортирует эту дату в другие части программы, помещая ее в объект "дата", который возвращается из сообщения get_date()... ... При выполнении должным образом единственным видимым в других частях программы объектом был бы объект "дата"... ... "Дата" использовала бы объект "календарь" для реализации сообщения "инициализируй_себя" (которое могло бы быть конструктором), но "календарь" бы содержался внутри "даты"... ... Определение класса "календарь" можно было бы даже вложить в определение класса "дата"... ... Объект "дата" также мог бы поддерживать другие инициализирующие сообщения, такие как "инициализируй_себя_от_редактируемого_ввода" или "инициализируй_себя_из_строки", но во всех случаях объект "дата" отвечает за нужное для инициализации взаимодействие с пользовательским интерфейсом... ... Остальная часть программы просто бы непосредственно использовала "дату"... ... никто, кроме "даты", даже бы не знал о существовании объекта "календарь"... ... То есть вы бы объявили "дату" и приказали ей себя инициализировать... ... Затем вы можете передавать объект "дата" всюду, куда необходимо... ... Конечно, "дата" должна также уметь себя вывести, переслать в файл или из файла, сравнить себя с другими датами и так далее... ... Следуя описанному выше работа с классом "дата" должна выглядеть примерно так: Пример кода: CDate cd = new CDate()... ... // создали объект "дата" с текущей датой внутри cd = new CDate("15... ... // сохранили дату в файл cd... ... // прочи дату из файла int days = cd - new CDate("28... ... // получили дату, на год большую исходной int dw = cd... ... // отображение календаря для ввода даты пользователем... ... Итак, упростим задачу до предела: есть класс CDate , представляющий ни что иное как обычную календарную дату... ... есть класс CCalendar , представляющий собой вспомогательное окно, отображающее календарь и принимающее ввод от юзера... ... Требования к реализации: 1) все операции касающиеся даты, должны выполняться в классе CDate... Подробнее: http://fit-media.com/post_1199568462.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 6,38%
Фрагменты текста поста : ... html (но вы, естественно, можете дать любое имя)... ... ) идентификатор или имя класса в формате CSS... ... добавим поле для ввода имени: Поле ввода имени Enter your name: <... ... } Первой командой мы считываем значение атрибута value из нашего поля ввода и сохраняем его в переменной nnn, а второй командой вызываем наш серверный скрипт с передачей ему считанного имени и занесением ответа в наш контейнер... ... ) Проблема встает, когда ваша форма содержит десятки элементов ввода &mdash... ... радио-кнопок, чек-боксов, полей ввода и т... ... /html> Как видите, теперь я создал форму и использовал два поля &mdash... ... считывать данные из полей, этим займется метод serialize(), который сам соберет все данные из формы и упакует их в формат, понятный для метода post()... ... Теперь, если вам нужно передать на сервер больше данных, то просто добавьте в форму сколько угодно полей различных типов (радио-кнопки, текстовые области, пароли, чек-боксы)... ... Здесь нам это нужно, чтобы указать плагину, какую именно форму ему придется обрабатывать... ... выбираем форму и задаем для нее две функции... ... ) плагин возьмет из формы... Подробнее: http://fit-media.com/post_1262093659.htmlМаксимум производительности
Степень соответствия запросу: 5,5%
Фрагменты текста поста : ... Избегайте требования от пользователя мысленного преобразования задачи в форму, приемлемую для машины... ... Уменьшение необходимости ввода данных Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации: Автоматически заполняйте поля новой записи значениями предыдущей... ... Минимизируйте, либо полностью устраните необходимость ввода информации... ... Можно ли получить информацию на основе логического вывода... ... Второй подход - минимизация ввода информации - может быть довольно сложным для применения по довольно неожиданной причине... ... Например, можно вводить информацию с бумажных форм в компьютер, используя сканер и программу оптического распознавания текста... ... Если нужно передать длинную форму после того, как пользователь нажмет Submit , это нужно сделать в фоновом режиме, пока пользователь переходит к следующей форме... ... Когда ожидаемая задержка менее 2 секунд, показывать оставшееся время бессмысленно, поэтому просто измените форму курсора на "... ... Измените форму курсора на "... Подробнее: http://fit-media.com/post_1207048697.htmlЗалепа №13. О грамотном проектировании и неграмотном IDE.
Степень соответствия запросу: 5,43%
Фрагменты текста поста : ... Каждая запись справочника содержит данные об одном пользователе: его логин, пароль для входа в систему и какие-то дополнительные атрибуты... ... такое решение, при котором наша программа не превратится в кашу из кучи классов, лишних открытых методов, свойств и форм... ... Для целей добавления/редактирования будет использоваться еще одно окошко - форма редактирования пользователя... ... Итак, получаем как минимум две формы, которые должны напрямую обращаться к внутренней структуре класса CUserMgr , т... ... создание глобальных классов нужных нам форм ни к чему хорошему не приведет: о существовании этих форм должен знать только CUserMgr , остальные о них не должны даже подозревать, т... ... Чтобы формы могли обратиться к внутренней структуре класса CUserMgr придется внутреннюю структуру сделать открытой, т... ... Решение сводится к созданию классов, представляющих сущности используя в качестве базы класс формы... ... Наш класс менеджера также должен быть наследником класса формы ( Form )... ... Но в IDE вы не сможете использовать визуальный редактор для форм, которые являются вложенными в другие классы (в нашем случае это CUserEdit и CUserList ) - IDE вместо отображения формы просто будет материться по-английски... Подробнее: http://fit-media.com/post_1204892317.htmlФайлы vs базы данных.
Степень соответствия запросу: 4,82%
Фрагменты текста поста : ... Структура такова: allsein — данные о заходах с поисковиков по разным запросам хост | искомая фраза дата, количество заходов... ... хост | искомая фраза дата, количество заходов... ... agent — данные о броузерах и ботах user-agent броузера дата, количество заходов... ... user-agent броузера дата, количество заходов... ... pages — данные о посещенных страницах страница дата, количество заходов... ... страница дата, количество заходов... ... rss_agent — данные о запросах от RSS-ридеров user-agent ридера дата, количество заходов... ... user-agent ридера дата, количество заходов... ... source — данные об источниках трафика URL страницы-источника дата, количество заходов... ... URL страницы-источника дата, количество заходов... ... В качестве дат (видимо для оптимизации) используются целочисленные значения, равные количеству дней, прошедших с некой фиксированной даты (1 января 2000 года)... ... html в определенный день, нужно сперва вычислить сколько дней прошло с 1 января 2000 года до искомой даты, затем «заглянуть» в ячейку массива Пример кода $ar['pages']['/stat... ... При обращении серфера к странице, скрипт собирает всю необходимую информацию (имя страницы, URL страницы-источника, user-agent, дата обращения и т... Подробнее: http://fit-media.com/post_1222679684.htmlПользовательский интерфейс
Степень соответствия запросу: 2,29%
Фрагменты текста поста : ... То есть из всего разнообразия изобразительных средств - формы, размера, цвета, текста - в кнопках диалогов используется только текст... ... Одновременно сменилась форма текстового курсора, и, что очень важно, он начал подмигивать... ... В конце концов, во многих приложениях используются разные формы динамики изображения, которые называются модным словом " мультимедиа "... ... Две анимированные среды интерфейса разработаны в той самой фирме XEROX PARC , которой мы обязаны появлением идеи оконного интерфейса (и даже в группе того самого Стюарда Карда , которому принадлежит авторство этой идеи)... ... В этот интервал входит не только время вывода новой картинки на экран, но и время осознания ее пользователем, ведь определенное время и усилия тратятся пользователем на то, чтобы понять, как каждая следующая картинка соотносится с предыдущей... ... Динамические визуальные сигналы - это изменение изображения на экране с целью дать пользователю дополнительную информацию... ... При выполнении программой длительных действий курсор мыши приобретает форму песочных часов... ... На каждом такте работы такой программы заново строится изображение на экране, а события, инициированные пользователем, например ввод с клавиатуры, отрабатываются всего лишь изменением состояния программы... ... Предположим, что ваша фирма выходит на рынок с новой моделью аудиомагнитофона, отличающейся от всех остальных некой возможностью А... Подробнее: http://fit-media.com/post_1204019048.htmlWindows с маленькой буквы w
Степень соответствия запросу: 2,18%
Фрагменты текста поста : ... Остальные части программы могут служить для обычных задач, таких как ввод и проверка записей... ... С помощью выяснения целей пользователя мы естественным образом подходим к наиболее подходящей форме программы... ... В Visual Basic, Delphi, C# и других языках легко создавать формы, которые представляют собой независимые окна верхнего уровня... ... Стратегия создания приложения в виде набора форм была довольно спорной, и не применялась широко до тех пор, пока среды разработки не дали возможность создавать окна легко и просто... ... Один программист на Visual Basic однажды с гордостью заявил мне, что его программу было особенно тяжело разрабатывать, потому что в ней содержится 57 форм... ... Каждая форма может быть превосходной сама по себе, но все вместе это просто кошмар... Подробнее: http://fit-media.com/post_1204300625.htmlВежливый интерфейс, или принципы создания диалогов
Степень соответствия запросу: 1,58%
Фрагменты текста поста : ... Представим, что этот поиск необходим для заполнения одного из полей на форме пользователя, как например адрес человека, кому вы должны послать ее, полученный из адресной книги... ... Если форма достаточно большая, пользователь может в это время находиться в другом разделе, поэтому поместите где-нибудь индикатор состояния для всей формы... ... Индикатор статуса в форме иконки может обозначать следующее: "где-то на этой форме поле помечено красным... ... Когда пользователь закончит заполнять форму и увидит зеленый индикатор, он поймет, что можно идти дальше... Подробнее: http://fit-media.com/post_1204699098.htmlЗалепа №12. Microsoft не знает собственного кода.
Степень соответствия запросу: 1,46%
Фрагменты текста поста : ... Microsoft не знает собственного кода... ... Соответственно они никак не зависят от состояния "включенности" CapsLock и NumLock , равно как и от текущей раскладки (языка ввода)... ... ) возможность указать системе, что принятый символ не должен проходить дальнейшую обработку и должен покинуть очередь вода... ... Например, если требуется ввести сумму, то нужно из потока ввода удалить все символы кроме цифр, точки, минуса и возможно кода клавиши "Забой" ( BackSpace )... ... Вот этот пример со всеми комментариями: Пример кода: // Boolean flag used to determine when a // character other than a number is entered... ... :) Ладно, вот еще вариант, на этот раз мой: Пример кода: private void textBox1_KeyDown(object sender, System... ... } Результат работы обоих примеров одинаковый, только у меня переопределен только один обработчик, не нужна дополнительная переменная, да еще и ввод символа "минус" разрешен, равно как и десятичной точки и десятичной запятой... ... :) Вывод этого краткого поста таков: разработчики библиотеки до такой степени напутали с лишними свойствами и методами, что сами потерялись в этой головоломке... ... из-за разработчиков библиотеки, которые "забыли" дополнить TextBox возможностью фильтровать (хотя бы на уровне "цифра/буква") пользовательский ввод, нам с вами приходится делать финты ушами, чтобы реализовать такие полезные в каждодневной работе вещи... Подробнее: http://fit-media.com/post_1203179184.html
