【问题标题】:Show "empty" TDateTimePicker显示“空”TDateTimePicker
【发布时间】:2010-11-20 18:59:00
【问题描述】:

如何在 Delphi 2010 中显示“空”的 TDateTimePicker(即隐藏日期的显示以使控件显示为空)。我知道设置格式以显示纪元的技巧,但在 Windows 7 上运行的 Delphi 2010 字符串“A.D.”当我这样做时出现在控件中。

【问题讨论】:

    标签: delphi delphi-2010


    【解决方案1】:

    尝试将format 设置为空白值。

    DateTimePicker1.Format:=' ';
    

    然后在OnChange方法中再次设置格式

    procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
    DateTimePicker1.Format:=ShortDateFormat;
    end;
    

    【讨论】:

    • 谢谢,这很好用。我使用单个空格来抑制任何显示,并使用空字符串(无空格)将其设置回默认格式。
    • 允许用户使用键盘输入日期仍然有效吗?
    【解决方案2】:

    你也可以试试:

    DateTimePicker1.Format := '__/__/____';
    

    这样,最终用户看起来就像需要日期一样。

    【讨论】:

      【解决方案3】:

      我在寻找如何处理这个问题时遇到了这个问题。

      我实际上使用TJvDateTimePicker 主要是因为它在下拉菜单中显示周数。我打算使用@RRUZ 建议的“格式技巧”,但发现TJvDateTimePicker 包含几个额外的已发布属性NullDateNullText,它们用于实现“格式技巧”。

      我在表单的构造函数中放置代码:

      dtpOne.NullDate := 0;
      dtpOne.NullText := ' '; // empty string doesn't work
      

      一切似乎都如您所愿。

      【讨论】:

        【解决方案4】:

        在 Delphi 10 中再次启用 TDateTimePicker 的方法是:

        DateTimePicker1.format := EmptyStr;
        

        system.SysUtils 中不再存在 ShortDateFormat

        【讨论】:

        • ShortDateFormat 与其他格式设置一起是 SysUtils 单元中的早期(例如 Delphi 7)全局变量。现在它们是全局TFormatSettings 记录的字段,称为FormatSettings。 IOW,要使用全局声明的ShortDateFormat,您必须编写FormatSettings.ShortDateFormat
        猜你喜欢
        • 2016-10-15
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多