Cyp*_*rUS 5 delphi datetimepicker
我在我的D7应用程序上使用TDateTimePicker,具有以下属性:
Format = 'MMM-yyyy'
DateMode = dmUpDown
Run Code Online (Sandbox Code Playgroud)
当我尝试使用dt1.DateTime := Now它来设置当前日期时间时,它会正确设置时间和日期,但是当我尝试导航月份时它会显示异常.特别是,我不能在3月份以下流通.
是什么导致了这个问题?
Dav*_*nan 14
问题是使用当前日期初始化日期时间选择器控件.这包括一个月中某个月无效的日子.
所以,为了清楚起见,你在2013年1月29日问这个问题.当你点击向上/向下控制转到2月时,控制无法执行更改,因为2013年2月29日没有.
对于任何发现难以复制的未来访问者,这是展示问题所需的代码:
DateTimePicker1.Format := 'MMM-yyyy';
DateTimePicker1.DateMode := dmUpDown;
DateTimePicker1.DateTime := EncodeDateTime(2013, 1, 29, 0, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
解决问题的简单方法是确保DateTime控件的属性是在月初.您可以通过在初始化控件时执行此代码来实现此目的:
DateTimePicker1.DateTime := StartOfTheMonth(DateTimePicker1.DateTime);
Run Code Online (Sandbox Code Playgroud)
或者如果你想更明确的话:
DateTimePicker1.DateTime := StartOfTheMonth(Date);
Run Code Online (Sandbox Code Playgroud)
该StartOfTheMonth辅助函数在发现DateUtils单位.
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |