Я установил стандарт VCL TDateTimePicker
- MaxDate
property to Date
- например.TDateTimePicker MaxDate - не позволяет установить управление на текущую дату
DTPicker.MaxDate := Date;
Однако есть проблемы. Если я сейчас установил дату текущей:
DTPicker.Date := Date;
Он не принимает его. Элемент управления просто остается на дату, установленную во время разработки. Я могу решить это, установив MaxDate равным Date + 1
, а затем установив свойство Date
, прекрасное и показывает сегодняшнюю дату, но тогда пользователь может выбрать дату завтрашнего дня. Я также пытался установить MaxDate
на Date + 0.99999999
, но это также не поможет.
Я использую Delphi 2010 и C++ Builder 2010 (если это ошибка в любом из них).
Любые идеи о том, как предотвратить выбор даты на сегодняшний день и установить контрольную дату на сегодняшнюю дату?
Изменение даты - «Не удалось установить дату и время календаря».
Update:
мне удалось заставить его работать следующим образом:
- открыт выпадающий в TDateTimePicker (во время выполнения) и намеренно выбрать текущую дату (нажмите на уже выбрана текущая дата)
- после этого выбрать любую прошлую дату
- кнопка клика, которая имеет код для сброса даты, а затем она работает.
Мое решение, вероятно, будет использовать проверку диапазона перед закрытием формы, как это кажется, что MaxDate
бесполезно, по крайней мере, с этой версией Delphi.
TDateTimePicker является дата + время создания компонента. Когда вы выбираете дату antoher во время выполнения, она просто изменяет дату. Вы не можете выбрать сегодня, так как часть времени компонента будет делать целое значение * после * MaxDate. Либо установите MaxDate на (завтра - 1 мс), либо установите начальную дату выбора, чтобы не включать временную часть. –
Это звучит несколько странно, что вы не можете войти сегодня, когда MaxDate сегодня, но может войти в Tomorrow, когда MaxDate будет завтра. BTW, я просто протестировал его в D2010 на Windows 7, и все работает так, как ожидалось. Так что это очень маловероятно, ошибка в D2010. –
Существует определенно проблема с D2010. Мне удалось заставить его работать. Вот как - запустить программу. Намеренно выберите сегодняшнюю дату. Затем выберите любую другую дату. Затем нажмите кнопку - и затем будет работать тот же код. – Coder12345