Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TDateTimePicker - ввод максимальной даты с клавиатуры [D7, WinXP]


Омлет ©   (2010-06-09 15:30:00) 

Есть DateTimePicker в режиме dtkDate.
MinDate = 01.01.2000
MaxDate= 31.12.2000
Пытаюсь с клавиатуры ввести 31.12.2000- число или месяц сбрасываются на 1. Т.е. когда введено 31.11.2000, попытка заменить 11 на 12 приводит к 01.
Выбрать же дату 31.12.2000с помощью мышки можно. Причем, после того, как выбираю дату мышкой, с клавиатуры её уже можно ввести, а до этого - никак.


Германн   (2010-06-10 02:31:00) [1]


> Омлет ©   (09.06.10 18:09) [4]
>
> Это я должен пользователям объяснить? ))
>
>

Если тебе не лень, то можешь попытаться.
Но для ввода дат в Дельфи лучше использовать календарь. TMonthCalendar.
Или вернись назад к RxLib.


Leonid Troyanovsky   (2010-06-09 21:03:00) [2]


> Омлет ©   (09.06.10 18:09) [4]

В оном компоненете, IMHO, немало всяких бажков,
как со стороны MS, так и других участников.

В любом случае, оный компонент не очень приспособлен для,
скажем, эргономического ввода.

Когда в последний раз анализировал его построение, подумал,
что лучше, все же, три поля: год, месяц, день (в сочетаниях комбо,
спинэдит & etc), бо, обычно не все меняется разом.

--
Regards, LVT.


Омлет   (2010-06-09 18:09:00) [3]

Это я должен пользователям объяснить? ))

> т.е. вводи в обратном порядке.

Ни так, ни эдак не работает.

> вставкой например

Это как?

> чтобы не было промежуточного 1-го месяца.

Так в январе 31 день, т.е. никаких проблем с этим.

И заметь:
> Причем, после того, как выбираю дату мышкой, с клавиатуры её уже можно ввести, а до этого - никак.


sniknik   (2010-06-09 16:48:00) [4]

число проверяется по месяцу (введя тот который не имеет 31го дня получаеш "сброс")... т.е. вводи в обратном порядке.
или вводи сразу целое число (вставкой например) месяца, чтобы не было промежуточного 1-го месяца.


Омлет   (2010-06-09 15:57:00) [5]

> Т.е. когда введено 31.11.2000, попытка заменить 11 на 12 приводит к 01.

когда введено 31.10.2000, попытка заменить 10 на 12 приводит к 10.


Омлет   (2010-06-09 15:30:00) [6]

Вопрос - где ошибка и как её исправить?


Наверх

Титульная страница Поиск, карта сайта Написать письмо