• Главная
  • Оглавление
  • Обратная связь
  • Лента RSS
  • Правила
Что здесь уже нашли

Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)




Найдено страниц: 34 [показано 10]

  1. Залепа №9. Microsoft друзей не признает.

    Степень соответствия запросу: 81,62%
    Фрагменты текста поста :
    ... Голуба "Правила программирования в С и С++" (речь идет именно о 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... ... 2) класс календаря, фактически являясь окном, имеет только "оконную" функциональность... ... Отсюда вытекают пункты: 3а) класс календаря не должен быть виден пользователю... ... Из третьего пункта следует, что объекты класса CCalendar будут создаваться не пользователем, а только классом CDate , им же они будут контролироваться в течении всей жизни календаря и, в конце-концов, он же их будет и уничтожать... ... Причем, скорее всего случится так, что календарю потребуется доступ к некоторым методам CDate , которые предназначены для внутренних механизмов самого CDate... ... :( В C++ мы бы просто сделали класс CCalendar другом класса CDate , разрешив тем самым календарю использовать внутренние механизмы в виде вызовов защищенных методов CDate... ... Согласен, решение не самое элегантное, но, поскольку оба класса разрабатываются нами, а пользователи о таком "разделении труда" даже не подозревают (и соответственно не смогут, например, породить наследников от календаря), то такое решение вполне приемлемо... ... Выигрыш от него на лицо: календарь может использовать скрытые возможность CDate , при этом пользователь все так же остается ограниченным рамками предоставленного нами открытого интерфейса CDate (пункт 3 выполняется в полной мере)... ... И поэтому, чтобы открыть доступ календарю к скрытой внутренней функциональности CDate , нам придется открыть эту функциональность и для всех остальных... ... Если же скомпоновать наш класс в сборку (assembly), то класс календаря можно сделать ненаследуемым, но при таком подходе пользователю уже не удастся сделать программу из одного exe-файла - придется тягать за собой еще и нашу сборку... Подробнее: http://fit-media.com/post_1199568462.html


  2. Грамотный интерфейс: поля ввода

    Степень соответствия запросу: 6,81%
    Фрагменты текста поста :
    ... Грамотный интерфейс: поля ввода Очень часто в программах данные вводятся в формах, содержащих множество полей: поле фамилии, имени, адреса, номера паспорта, размера обуви... ... Частично решить эту проблему позволяют контролы, принимающие ввод по маске ( MaskEdit или MaskEditBox ), но, честно говоря, им не хватает гибкости... ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Наиболее популярное на данный момент - разбить форму с десятком полей ввода на несколько форм, по два-три поля в каждом... ... Раскрасим поля ввода... ... На мой взгляд для решения вышеописанной проблемы необходимо разукрасить фон полей ввода... ... Суть состоит в том, что для ввода новой записи в базу и для редактирования уже введенной записи как правило используется одна и та же форма... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... ... Когда на форме расположено множество полей, то из-за усталости глаз, не очень хорошего зрения, слишком высокого разрешения монитора и многих других проблем возникает ситуация, когда пользователь не может сразу отпределить позицию коретки ввода - моргающая полоска может быть не заметна... ... Помочь пользователям в этом случае можно раскрасив текст в текущем поле ввода... ... Программируется такое поведение сверх-просто: как только фокус ввода передается какому-то контролу, значение его свойства " цвет текста " ( ForeColor , TextColor ) меняется на " красный " ( Color... ... Это простое дополнение даст возможность пользователю всегда точно знать, где именно находится коретка ввода и что именно нужно сейчас вводить... Подробнее: http://fit-media.com/post_1205142560.html


  3. Файлы vs базы данных.

    Степень соответствия запросу: 4,66%
    Фрагменты текста поста :
    ... Структура такова: 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


  4. Залепа №10 Cупер-хренорезка может все. Только хрен не режет.

    Степень соответствия запросу: 2,73%
    Фрагменты текста поста :
    ... Но потом, немного поразмыслив, я пришел к выводу, что это сделано видимо с целью дать программисту возможность отслеживать текущее состояние "свернутости" контрола... ... Снова полез в MSDN, посмотреть, как же будет зваться свойство, разворачивающее календарь, ибо, наученный горьким опытом копания в коде майкрософта, я твердо знаю, что метод, выполняющий одни и те же действия в разных (пусть даже схожих) контролах будет зваться по-разному... ... Интересно, нарисует только строчку с датой или еще и развернутый календарь... ... Но вот только не ясно, какое именно отношение эти свойства имеют к календарю, ровно как и к любому другому контролу... ... Никогда бы не подумал, что человеку в здравом уме придет в голову использовать строчку ввода даты как площадку для размещения дополнительных элементов управления... ... Ну коль уж так хочется напихать в календарь еще и прогресс-баров с радио-кнопками и полями ввода RTF-текста, то почему их нельзя перебрать просто как массив... ... NET Framework масса лишнего мусора, а к тому, что ни свойства, ни метода для программного разворачивания календаря я так и не обнаружил... Подробнее: http://fit-media.com/post_1202303173.html


  5. Залепа №12. Microsoft не знает собственного кода.

    Степень соответствия запросу: 1,41%
    Фрагменты текста поста :
    ... 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


  6. Максимум производительности

    Степень соответствия запросу: 0,99%
    Фрагменты текста поста :
    ... Уменьшение необходимости ввода данных Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации: Автоматически заполняйте поля новой записи значениями предыдущей... ... Минимизируйте, либо полностью устраните необходимость ввода информации... ... Можно ли получить информацию на основе логического вывода... ... Второй подход - минимизация ввода информации - может быть довольно сложным для применения по довольно неожиданной причине... Подробнее: http://fit-media.com/post_1207048697.html


  7. Залепа №6. Вечный календарь и пляска с бубном.

    Степень соответствия запросу: 0,59%
    Фрагменты текста поста :
    ... Вечный календарь и пляска с бубном... ... Итак, секретарше в календаре надо видеть дни, в которые начальник выезжает и как-то особо метить дни, в которые начальник будет брать с собой помощника... ... К слову сказать, диапазон у этого календаря тоже удовлетворит любого - он умеет работать с датами до 9999 года, так что очередная "проблема 3000" нам уже не грозит... ... Причем не просто одинаково, а написаны тем же шрифтом, что и обычные даты, только слегка жирненьким... Подробнее: http://fit-media.com/post_1197894841.html


  8. AJAX — WEB 2.0 за 5 минут

    Степень соответствия запросу: 0,58%
    Фрагменты текста поста :
    ... Если у вас есть трудности с javascript, смело вставляйте в свои страницы команду загрузки jQuery и забудьте о своих проблемах... ... html (но вы, естественно, можете дать любое имя)... ... добавим поле для ввода имени: Поле ввода имени Enter your name: <... ... } Первой командой мы считываем значение атрибута value из нашего поля ввода и сохраняем его в переменной nnn, а второй командой вызываем наш серверный скрипт с передачей ему считанного имени и занесением ответа в наш контейнер... ... ) Проблема встает, когда ваша форма содержит десятки элементов ввода &mdash... ... радио-кнопок, чек-боксов, полей ввода и т... Подробнее: http://fit-media.com/post_1262093659.html


  9. 14 принципов создания вежливых программ

    Степень соответствия запросу: 0,3%
    Фрагменты текста поста :
    ... Из этого исследования следует важный вывод: Если мы хотим, чтобы наша программа понравилась пользователям, мы должны сделать ее поведение похожим на поведение человека... ... Может ли компьютер дать вам другой ответ, чем только что кому-то еще... ... Легче остановить запрос, если он окажется ненужным, чем ждать его выполнения... ... Из этого следуют два вывода... ... Хотя автоматизированная система ввода заказов может обработать в миллион раз больше заказов, чем простой служащий, служащий всегда может подстроить работу системы... Подробнее: http://fit-media.com/post_1203349390.html


  10. Идея глобального контента

    Степень соответствия запросу: 0,3%
    Фрагменты текста поста :
    ... Идентификатор родительского элемента сайта ( parent_id - мы же строим иерархическую систему) Заголовок ( title ) Описание ( description ) Краткое содержание ( summary - используется в качестве анонса) Собственно текст старницы ( content ) Ключевые слова ( keywords ) Идентификатор автора ( user_id ) Дата создания ( created ) Дата последнего изменения ( modified ) Флаг опубликованности ( published ) Идентификатор логического раздела ( category ) Вроде ничего не забыл... ... Список полей: Уникальный идентификатор ( id ) Идентификатор статьи с в блоге, к которой относится данный комментарий ( parent_id ) Заголовок ( title ) Собственно текст ( content ) Идентификатор автора ( user_id ) Дата создания ( created ) Флаг промодерированности ( published ) Как видим, поля всё теже, что и для статичной страницы, отличие лишь в количестве... ... Лишь будет иметь одно дополнительное поле: Дата, начиная с которой новость уже не актуальна ( expiried ) Товар в магазине... ... При этом для разработчиков модулей можно упростить многие рутинные операции, такие как, программирование ввода одних и тех же данных в разных модулях ( created , modified , title , decsription , keywords и т... Подробнее: http://fit-media.com/post_1242742678.html


История внешних поисковых запросов

Меню

  • Главная страница
  • Оглавление блога
  • Лента новостей
  • Обратная связь
  • Правила блога

Анонсы по темам

  • Все посты блога
  • С миру по нитке
  • Мысли вслух
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Категории

  • Все посты по порядку
  • С миру по нитке
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Сервисы

  • Поиск по блогу
  • Поиск по всему сайту
  • Шпионское досье

Реклама


Стоимость сайта

Мой вебсайт стоит 865 404,18 руб

Статистика

    Widgetize!
  • Время работы: 0,34345 сек.
  • Память: 17 664 кБт
  • Статистика привратника
Copyright FIT-Media.com, © 2007-2012
Главная | Общее оглавление | Обратная связь | Правила блога | Лента RSS