首页 > 解决方案 > 在 DBGrid 列中运行时将 RangeArray(1.00-11.59) 内的条目号 (1.30) 自动转换为 (1:30)

问题描述

我正在开发一个时间表应用程序,用户将在其中输入员工上午、下午和晚上(加班)的工作时间。

众所周知,这对用户来说是一项非常乏味的工作,我试图找到一种方法让用户更轻松,特别是在时间条目中使用句点 (.) 而不是冒号 (:)。

例如:用户在标题为“AM Time-In”的 DBGrid 列中输入 8.15。按下“回车”后,计算机会自动转换为上午 8 点 15 分。

因此, 1. 有没有办法在我的 Delphi 10.3 Rio 中做到这一点?2. 我也想把 24 小时制改为 12 小时制?

我将不胜感激任何帮助。谢谢你。

标签: delphi

解决方案


您应该为特定的 Field/DBGrid 列设置一个EditMask 。这将允许您使用 EditMaks 本身自动输入所需的句点或冒号字符,这样您的用户就不必自己编写它们。

EditMask 最常用于接受日期和时间信息的字段。
但它们基本上可以用于任何具有固定格式的数据输入,例如IBAN 号码、电话号码、车牌号码、IP 地址号码等。

PS:如果您正在开发要在世界各地使用的应用程序,请不要忘记不同的国家/地区使用不同的格式来表示时间和日期。这意味着您必须EditMask在运行时设置适当的值。


推荐阅读