Motto

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


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

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

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

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

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

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

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

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

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

11 человек заметили этот пост:

Vlad комментирует...

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

CraZy_MaTH комментирует...

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

CraZy_MaTH комментирует...

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

Aleksey Timohin комментирует...

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

DimaBy комментирует...

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

Aleksey Timohin комментирует...

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

DimaBy комментирует...

Не помогло. Пробовал на двух компонентах 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

Aleksey Timohin комментирует...

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

CraZy_MaTH комментирует...

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

DimaBy комментирует...

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

Дима Шайтор комментирует...

Про десятилетие очень интересно, не знал :)

Отправить комментарий

Читатели