【问题标题】:TMaskEdit for Date curious behaviour when enter mask charTMaskEdit 用于输入掩码字符时的日期好奇行为
【发布时间】:2017-11-02 17:49:04
【问题描述】:

我正在使用掩码编辑来创建 TDateTime 组件。

我使用以下掩码:!99/99/0000;1;_

如果用户在输入日期时还键入日期分隔符,如果他们在第二部分(即,取决于您的语言环境的月份或日期),它可以正常工作,光标会跳转到年份部分。如果您在年份部分,它会发出哔哔声。

我尝试在组件的 keydown 中捕获 dateSeparator,虽然我截取了它并将其设置为 0,但它仍然从日/月部分跳转到年部分。我什至尝试将键值设置为0后重置selstart,但它不起作用。

任何关于如何克服这种行为的想法都将不胜感激。

【问题讨论】:

  • 您不使用TDateEdit的任何特殊原因?
  • @JerryDodge:什么是 TDateEdit?它没有出现在柏林的 VCL 中。你是说 TDateTimePicker 吗?
  • @KenWhite 是的,我就是这个意思。显然,当我在组件面板中查找它时,我正在使用 FMX。不管怎样,我相信你知道我在问什么。
  • @JerryDodge:当然,我做到了,正如我在询问时所说的那样。 :-) 问题被标记为 VCL,发帖人可能不知道你的意思。
  • 那么让我问一个正确的问题:有什么特别的原因为什么您不使用 Delphi 中现有的与日期相关的控件?

标签: delphi vcl


【解决方案1】:

不是我的问题的完全答案,但我通过使用 OnKeyPress 而不是 OnKeyDown 并插入以下代码解决了这个问题:

if (key = FormatSettings.DateSeparator)  then
  key := #0;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-05
    • 2014-02-19
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    相关资源
    最近更新 更多