【发布时间】:2018-08-15 11:56:01
【问题描述】:
我发现在我将 TDateTimePicker 的 MaxDate 设置为非零值后,不可能将其恢复为零(禁用它)。我的意思是,MaxDate 读数为零,但最大范围仍对之前设置的值有效。这可以通过下拉日历并检查最后可见日期来注意到。
这是另一个错误,还是我不明白如何禁用 MaxDate ?
procedure TForm1.Button1Click(Sender: TObject);
begin
DateTimePicker1.MaxDate:= Date + 10;
DateTimePicker1.MaxDate:= 0;
Caption:= IntToStr(Trunc(Test.MaxDate));
end;
P.S:我先把时间设置为零(这是另一个错误)。
【问题讨论】:
-
是的,这似乎是一个错误,至少在我目前正在使用的 Delphi 10.2 中。
-
但即使是底层 Win32 控件的 MSDN 文档也无济于事......
-
这就是我所害怕的......所以,我认为,唯一的解决方案是将 MaxDate 设置为我永远不会在我的应用程序中使用的更高值......
-
实际上,我对 MSDN 文档的质量差感到有点惊讶。尽管如此,控件的最大值似乎是
9999-12-31(同时使用控件和使用DateTime_SetRange)。 -
您可以调用
DateTime_SetRange(DateTimePicker1.Handle, 0, nil)删除范围。另一件事是重置保存范围的内部字段。
标签: delphi datetimepicker delphi-2009