作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Delphi 7问题。我正在使用一个具有许多数据绑定(bind)控件的表单(无法更改此控件)。我有一个绑定(bind)到 TStringField 的 TDBEDIT 控件(它具有 EditMask 属性)。我知道我可以使用此 EditMask 强制控件验证其输入,但我想知道是否可以直接使用原始值填充字段并让控件根据 EditMask 显示它?
我想用 16 位数字填充该字段,但我希望它显示为 4 组 4 位数字(即 9999 9999 9999 9999)。
如果我这样做...
dbedtABCNumber.DataSource.DataSet.Edit;
dbedtABCNumber.Field.Value := '1234567812345678';
我只显示前 4 位数字。
我希望有人更熟悉旧数据绑定(bind)控件的缺陷。
最佳答案
您可以使用TField.OnGetText event或TNumericField.DisplayFormat property修改文本的显示方式。
由于您有一个 TStringField 保存数字,因此您有两种选择:
TNumericField
和 DisplayFormat
属性OnGetText
事件并进行您自己的字符串格式化编辑:
Sam 使用了这种方法:
我实现了 OnSetText
和 OnGetText
事件处理程序。我已经有了 Edit Mask
9999 9999 9999 9999;1;_
所以 OnSetText
只是
TStringField(Sender).Value := Trim(Text);
和 OnGetText
只是
sValue := TStringField(Sender).Value;
Text := Format('%s %s %s %s', [Copy(sValue, 1, 4), Copy(sValue, 5, 4), Copy(sValue, 9, 4), Copy(sValue, 13, 4)]);
效果很好。谢谢。
关于delphi - 我可以使用编辑蒙版来格式化输出吗? (不仅仅是验证输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617205/
我是一名优秀的程序员,十分优秀!