【发布时间】:2010-11-20 18:59:00
【问题描述】:
如何在 Delphi 2010 中显示“空”的 TDateTimePicker(即隐藏日期的显示以使控件显示为空)。我知道设置格式以显示纪元的技巧,但在 Windows 7 上运行的 Delphi 2010 字符串“A.D.”当我这样做时出现在控件中。
【问题讨论】:
标签: delphi delphi-2010
如何在 Delphi 2010 中显示“空”的 TDateTimePicker(即隐藏日期的显示以使控件显示为空)。我知道设置格式以显示纪元的技巧,但在 Windows 7 上运行的 Delphi 2010 字符串“A.D.”当我这样做时出现在控件中。
【问题讨论】:
标签: delphi delphi-2010
尝试将format 设置为空白值。
DateTimePicker1.Format:=' ';
然后在OnChange方法中再次设置格式
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
DateTimePicker1.Format:=ShortDateFormat;
end;
【讨论】:
你也可以试试:
DateTimePicker1.Format := '__/__/____';
这样,最终用户看起来就像需要日期一样。
【讨论】:
我在寻找如何处理这个问题时遇到了这个问题。
我实际上使用TJvDateTimePicker 主要是因为它在下拉菜单中显示周数。我打算使用@RRUZ 建议的“格式技巧”,但发现TJvDateTimePicker 包含几个额外的已发布属性NullDate 和NullText,它们用于实现“格式技巧”。
我在表单的构造函数中放置代码:
dtpOne.NullDate := 0;
dtpOne.NullText := ' '; // empty string doesn't work
一切似乎都如您所愿。
【讨论】:
在 Delphi 10 中再次启用 TDateTimePicker 的方法是:
DateTimePicker1.format := EmptyStr;
system.SysUtils 中不再存在 ShortDateFormat
【讨论】:
ShortDateFormat 与其他格式设置一起是 SysUtils 单元中的早期(例如 Delphi 7)全局变量。现在它们是全局TFormatSettings 记录的字段,称为FormatSettings。 IOW,要使用全局声明的ShortDateFormat,您必须编写FormatSettings.ShortDateFormat。