delphi - 在 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 小时制?
我将不胜感激任何帮助。谢谢你。
解决方案
您应该为特定的 Field/DBGrid 列设置一个EditMask 。这将允许您使用 EditMaks 本身自动输入所需的句点或冒号字符,这样您的用户就不必自己编写它们。
EditMask 最常用于接受日期和时间信息的字段。
但它们基本上可以用于任何具有固定格式的数据输入,例如IBAN 号码、电话号码、车牌号码、IP 地址号码等。
PS:如果您正在开发要在世界各地使用的应用程序,请不要忘记不同的国家/地区使用不同的格式来表示时间和日期。这意味着您必须EditMask
在运行时设置适当的值。
推荐阅读
- regex - c# Regex.Replace 为 (.*) 但这个 (.*) 有最大长度
- python - 我将视频 mp4 文件转换为音频 mp3 格式,现在我想使用 os.remove 删除原始 Mp4 视频文件但给出错误
- vue.js - 在 Vuetify 中使用 srcset
- node.js - Nodejs-为什么在安装nodemon时出现这个错误
- python - 列表理解中是否有任何替换功能?
- c++ - 当我输入一个char类型的数字时,为什么我不能得到一个整数?
- ios - 如何通过在 SwiftUI 中触摸屏幕的任意位置来更改文本
- r - 如何在 quosures 列表中输入或包含附加参数?
- python - 使 Bokeh CheckboxGroup 具有文本形式的链接
- python - ValueError:将函数应用于数据帧时,值的长度与索引的长度不匹配