我可以使用编辑掩码格式化输出吗?(不仅仅是验证输入)



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,你有两个选择:

  • 使用TNumericFieldDisplayFormat属性
  • 使用OnGetText事件和做你自己的字符串格式化

编辑:

Sam使用了这样的方法:

实现了OnSetTextOnGetText事件处理程序。我已经有了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)]);

效果很好。谢谢。

相关内容

最新更新