Delphi中能否通过编辑掩码实现格式化输出,同时还能进行输入验证?
- 内容介绍
- 文章标签
- 相关推荐
本文共计355个文字,预计阅读时间需要2分钟。
德福问题。我正在使用一个具有大量数据绑定的表单(修改此选项不是一个选项)。我有一个绑定到TStringField(具有EditMask属性)的TDBEDIT控件。我知道我可以使用这个EditMask来强制控制验证它的。
德尔福7问题.我正在使用具有许多数据绑定控件的表单(更改此选项不是一个选项).我有一个绑定到TStringField(具有EditMask属性)的TDBEDIT控件.我知道我可以使用这个EditMask强制控件来验证它的输入,但是我想知道的是我是否可以直接用原始值填充字段并让控件根据EditMask显示它?我想用16位数字填充该字段,但我希望它显示为4个4位数字(即9999 9999 9999 9999).
如果我做 …
dbedtABCNumber.DataSource.DataSet.Edit; dbedtABCNumber.Field.Value := '1234567812345678';
我只显示前4位数字.
我希望那里的人更熟悉旧的数据绑定控件的内部.
您可以使用 TField.OnGetText event或 TNumericField.DisplayFormat property修改文本的显示方式.由于您有一个TStringField持有数字,您有两个选择:
>使用TNumericField和DisplayFormat属性
>使用OnGetText事件并执行自己的字符串格式设置
编辑:
山姆用这种方法:
我实现了OnSetText和OnGetText事件处理程序.我已经有了编辑掩码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)]);
它工作正常.谢谢.
本文共计355个文字,预计阅读时间需要2分钟。
德福问题。我正在使用一个具有大量数据绑定的表单(修改此选项不是一个选项)。我有一个绑定到TStringField(具有EditMask属性)的TDBEDIT控件。我知道我可以使用这个EditMask来强制控制验证它的。
德尔福7问题.我正在使用具有许多数据绑定控件的表单(更改此选项不是一个选项).我有一个绑定到TStringField(具有EditMask属性)的TDBEDIT控件.我知道我可以使用这个EditMask强制控件来验证它的输入,但是我想知道的是我是否可以直接用原始值填充字段并让控件根据EditMask显示它?我想用16位数字填充该字段,但我希望它显示为4个4位数字(即9999 9999 9999 9999).
如果我做 …
dbedtABCNumber.DataSource.DataSet.Edit; dbedtABCNumber.Field.Value := '1234567812345678';
我只显示前4位数字.
我希望那里的人更熟悉旧的数据绑定控件的内部.
您可以使用 TField.OnGetText event或 TNumericField.DisplayFormat property修改文本的显示方式.由于您有一个TStringField持有数字,您有两个选择:
>使用TNumericField和DisplayFormat属性
>使用OnGetText事件并执行自己的字符串格式设置
编辑:
山姆用这种方法:
我实现了OnSetText和OnGetText事件处理程序.我已经有了编辑掩码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)]);
它工作正常.谢谢.

