Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


суббота, 27 февраля 2010 г.

А Вы хорошо знаете календарь в Windows?

Меня по работе несколько раз просили заменить стандартный TDateTimePicker на RxLib-овский, потому в стандартном якобы неудобно менять год. Как оказалось, просившие не знали об одном свойстве стандартного календаря.

Знаете ли вы, что если кликнуть по заголовку календаря, там где год и месяц, то календарь позволит выбрать месяц. А если кликнуть ещё раз, то можно будет выбрать год из текущего десятилетия. А если ещё раз, то можно будет выбрать десятилетие, при этом стрелки сверху будут менять столетия. Проверял в Windows XP и Vista.

То же самое будет если нажать Ctrl + стрелка вверх/вниз.

Календарь - выбор числа

Календарь - выбор месяца

Календарь - выбор года Календарь - выбор столетия

А ещё, TDateTimePicker не позволяет выбрать дату до 14 сентября 1752 года. А вот компонент TjvDateEdit из бесплатной библиотеки JVCL такого ограничения не имеет.

11 комментариев:

  1. ну дату до 14 сентября 1752 года врядли потребуется использовать (если только программа не для историков и не про историю), а про десятилетия в календаре не знал :)

    ОтветитьУдалить
  2. Да да да) Буквально на прошлой неделе случайно в 7ке нажал и обнаружил такую функцию. Очень удивился) Неужели и в XP работает?)
    Пошел проверять)

    ОтветитьУдалить
  3. Нет, все же неудобно. Проверял на RAD Studio 2007. В XP старый TDateTimePicker.
    К сожалению, не получается вставить скрин, только ссылка:
    http://i070.radikal.ru/1002/77/7d51b6901ec3.gif

    ОтветитьУдалить
  4. CraZy_MaTH, TDateTimePicker, насколько я знаю, использует стандартный Виндовый календарь. Поэтому, его поведение не зависит от версии Delphi - всё контролирует винда.
    Только что проверил на WinXP SP2 - получил такой же результат как у тебя. До этого проверял на рабочем компе с XP SP3 - там поведение было такое же как и в Vista.

    ОтветитьУдалить
  5. У меня тоже SP3 однако результат как у CraZy_MaTH.
    На скриншоте видна и версия windows и поведение календаря
    http://i035.radikal.ru/1002/d9/c40290d6c5f0.jpg

    ОтветитьУдалить
  6. DimaBy, спасибо за уточнение. Если не затруднит, попробуйте подключить к программе манифест XP.

    ОтветитьУдалить
  7. Не помогло. Пробовал на двух компонентах TMonthCalendar и TJVMontCalendar. По стилю кнопок видите, что манифест применился.
    http://i003.radikal.ru/1002/3a/beb8c86641d9.png
    http://s003.radikal.ru/i204/1002/04/18506247dbeb.png
    А вот скриншот второй программы запущенной по вистой
    http://s60.radikal.ru/i169/1002/00/c2c8f5ea9592.png

    ОтветитьУдалить
  8. DimaBy, спасибо за проверку. Видимо я что-то перепутал.

    ОтветитьУдалить
  9. А если запустить на XP сборку сделанную в RAD 2010 тоже покажется стандартный календарь для XP? =) Для чистоты эксперимента)

    ОтветитьУдалить
  10. CraZy_MaTH
    Как и следовало ожидать результат тот-же - старый календарь XP.

    ОтветитьУдалить
  11. Про десятилетие очень интересно, не знал :)

    ОтветитьУдалить

Постоянные читатели