- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将标准 VCL TDateTimePicker
- MaxDate
属性设置为 Date
- 例如
DTPicker.MaxDate := Date;
但是,有一个问题。如果我现在将日期设置为当前日期:
DTPicker.Date := Date;
它不会接受它。控件仅停留在设计时设置的日期。我可以通过将 MaxDate 设置为 Date + 1
来解决此问题,然后设置 Date
属性工作正常并显示今天的日期,但用户可以选择明天的日期。我还尝试将 MaxDate
设置为 Date + 0.99999999
但这也没有帮助。
我使用 Delphi 2010 和 C++Builder 2010(如果这是其中任何一个的错误)。
有什么想法可以防止选择今天之后的任何日期并将控制日期设置为今天的日期吗?
更改日期会导致 - “无法设置日历日期或时间。”
更新:
我设法使其工作如下:
我的解决方案可能是在关闭表单之前使用范围检查,因为看起来 MaxDate
毫无用处,至少对于这个版本的 Delphi 来说是这样。
最佳答案
看来是 Date
的时间部分导致了问题。这在 D2007、XE、XE8 和 Delphi 10 Seattle 上运行良好:
DateTimePicker1.MaxDate := Trunc(Date) + 0.99999999999;
DateTimePicker1.Date := Date;
使用全新的 VCL 表单应用程序进行测试。在表单上放置一个 TDateTimePicker
和一个 TButton
,并为表单的 FormCreate
生成一个事件:
procedure TForm1.FormCreate(Sender: TObject);
begin
DateTimePicker1.MaxDate := Trunc(Date) + 0.99999999999;
end;
和按钮:
procedure TForm1.Button1Click(Sender: TObject);
begin
DateTimePicker1.Date := Date;
end;
运行应用程序,单击“DateTimePicker”组合框以显示日历,然后选择任何可用的日期。 DateTimePicker 显示选定的日期。单击该按钮,DateTimePicker 会更新以显示今天的日期。再次下拉日历会显示可用的正确日期。
当然,正如 Remy Lebeau 在评论中指出的那样:在实际应用程序中,您不会希望对时间部分进行硬编码。更好的解决方案是使用 DateUtils.EndOfDay(Date)
或 Trunc(Date) + EncodeTime(23, 59, 59, 999)
。
关于delphi - TDateTimePicker MaxDate - 不允许将控件设置为当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746206/
如果我设置 TDateTimePicker 组件(Delphi XE10)的属性“格式”,例如。 ddd d/m/yyyy 然后显示 Tue 14/47/2016 !!日期 31/12/2016 为
TDateTime 选择器是一个组合框,其中的下拉列表被日历替换。我使用 XE2 VCL 样式,更改样式不会影响 TDateTimePicker 颜色和字体颜色。我已经用这个 question 更改了
这是一个来自 Delphi XE7 的 DatetTimePicker 的奇怪问题的简单问题。 我有这个代码... procedure TForm1.Button1Click(Sender: TObj
我发现将 TDateTimePicker 的 MaxDate 设置为非零值后,无法将其恢复为零(禁用它)。我的意思是,MaxDate 读数为零,但最大范围对于之前设置的值仍然有效。通过下拉日历并检查最
如何禁止 TDateTimePicker 允许选择超出系统日期和时间的日期?例如,如果我的系统日期是 2012 年 11 月 6 日,我将无法选择 2012 年 11 月 6 日之后的日期。 此外,我
我有一个内置 SQL 的 SP,它有 2 个参数,一个是年,另一个是月。 在 delphi 中,我在框架上添加了一个 TDateTimePicker,以便让用户选择月份和年份。 如何从 TDateTi
我正在使用 TDateTimePicker 来允许用户选择一天(手动或通过单击按钮前进或后退一天)。然后,用户将看到该特定日期的日志条目。 该控件效果很好,但我想将用户限制在 [OLDEST-DAY-
我在 D7 应用程序上使用具有以下属性的 TDateTimePicker: Format = 'MMM-yyyy' DateMode = dmUpDown 当我尝试使用 dt1.DateTime :=
我想知道当用户从 TDateTimePicker 组件中选择特定日期时如何更改标签的标题。 举个例子:如果 TDateTimePicker 组件上标记了 06/02/2012,则 label1 的标题
如何在 Delphi 2010 中显示“空”TDateTimePicker(即隐藏日期的显示,以便控件显示为空)。我知道设置显示纪元的格式的技巧,但是在 Windows 7 上运行 Delphi 20
我在 Delphi 6 表单上有一个 DateTimePicker,默认日期为 1899 年 12 月 30 日。我希望用户能够单击它或打开下拉日历并选择当前日期。使用 OnClick 过程: Dat
我已将标准 VCL TDateTimePicker - MaxDate 属性设置为 Date - 例如 DTPicker.MaxDate := Date; 但是,有一个问题。如果我现在将日期设置为当前
我正在使用 Delphi7,我想将 TDateTimePicker 控件的某些天加粗。 我读到,它最初是 TMonthCalendar 的后代,因此应该是可能的。 我还找到了一些示例代码,但它是用 C
我真的很困惑。我想要做的(看起来很简单)是在 TDateTimePicker 中显示日期+时间,并集成日历,并能够在其值更改后读取它。 我想使用 dd/MM/yyyy hh:mm 格式。 由于 TDa
我想将日历系统(如公历)实现为 TDateTimePicker。 1) 我想知道我可以扩展 TDateTimePicker 类以使用其视觉功能,但更改其日历计算系统以匹配我的日历系统吗? 2)如果是这
当用户单击 DateTimePicker 并设置为下拉日历时,我希望以某种方式突出显示各种日期(通过我创建的代码选择)——彩色背景、粗体字体、彩色字体,这并不重要。我只想标记某些日期。 ...我该怎么
我正在编写一个自定义模块来使用专有软件。 (该软件已经停产,我没有它的源代码。)我的模块将作为一个单独的进程运行。它的目标是通过这个专有软件自动化操作。为此,我需要能够在 TDateTimePicke
我的表单上有一个带有 Kind=dtkDate 的 TDateTimePicker。 当表格打开时,我做 TDateTimePicker.date := Date 我有一个 var lStartDay
如果这个问题听起来有点愚蠢,我深表歉意,但是使用 XE2,我可以看到 TDateTimePicker 的 OnDblClick 事件似乎从事件列表中丢失了。真的是这样吗?这是我的操作方法: 我启动一个
我的一个应用程序的一些用户遇到了一个奇怪的问题,在启动时他们得到了 datitimepickers 的异常,其预定的最小/最大日期设置为 1950 年 1 月 1 日 - 2050 年 12 月 31
我是一名优秀的程序员,十分优秀!