Delphi 7题。我正在使用一个有许多绑定控件的表单(更改这不是一个选项)。我有一个绑定到TStringField(它有一个EditMask属性)的TDBEDIT控件。我知道我可以使用这个EditMask来强制控件验证它的输入,但是我想知道的是,我是否可以直接用原始值填充字段,并让控件根据EditMask显示它?
我想用16位数字填充字段,但我希望它显示为4个批次的4位数字(即。9999 9999 9999 9999).
如果我做…
dbedtABCNumber.DataSource.DataSet.Edit;
dbedtABCNumber.Field.Value := '1234567812345678';
我只得到前4位数字显示。
我希望有人更熟悉旧的绑定控制的复杂性。
您可以使用TField。OnGetText事件或TNumericField。DisplayFormat属性来修改文本的显示方式。
因为你有一个保存数字的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)]);
效果很好。谢谢。