delphi – 如何获取导致TDBGridInplaceEdit错误的值?
发布时间:2020-12-15 09:18:44 所属栏目:大数据 来源:网络整理
导读:我正在尝试编写一个显示用户友好消息的异常处理程序.我不知道如何获得导致TDBGridInplaceEdit错误的“新输入”数据值. 例如: 我有一个DBGrid加载数据.当我故意将第1行的PartNo字段更改为非数字值以导致TDBGridInplaceEdit错误…(从:1313.3到:1313..3)…我
我正在尝试编写一个显示用户友好消息的异常处理程序.我不知道如何获得导致TDBGridInplaceEdit错误的“新输入”数据值.
例如: 原文PartNo:1313.3 改变PartNo:1313..3(小数点后两位) 应用程序onException中显示的错误消息 procedure TMain.ApplicationEvents1Exception(Sender: TObject; E: Exception); var str : string; begin str := sender.ToString; str := str + #10; str := str + RzDBGrid2.SelectedField.FieldName; str := str + #10; str := str + VarToStr(RzDBGrid2.SelectedField.Value); str := str + #10; str := str + e.Message; showmessage(str); //Application.ShowException(E); end; 我想使用输入的错误“1313..3”值来格式化我自己的消息.你怎么得到这个价值? 解决方法
如果要保留数据集的字段,则可以在字段上定义OnSetText方法.(双击数据集并选择添加字段).
方法可能如下所示: procedure TForm1.ADataSetAFloatFieldSetText(Sender: TField; const Text: string); var f:Double; begin if not TryStrToFloat(Text,f) then begin raise Exception.Create( 'Error on: ' + #13#10'Dataset: ' + Sender.DataSet.Name + #13#10'Field: ' + Sender.FieldName + #13#10'Old Value: ' + Sender.AsString + #13#10'New Value: ' + Text ); end; end; 如果您想避免保留字段,可以动态地将方法分配给字段,例如打开数据集后. procedure TForm1.ADataSetAfterOpen(DataSet: TDataSet); Var i:Integer; begin for I := 0 to Dataset.FieldCount - 1 do begin if Dataset.Fields[i].DataType in [ftFloat,ftCurrency,ftBCD] then Dataset.Fields[i].OnSetText := ADataSetAFloatFieldSetText; end; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- golang multipart/form-data POST上传文件
- TListView的使用
- [VB.NET]vb.net如何捕捉摄相头的视频
- vb.net 教程 8-2 简单的SQL语言1
- LeetCode 110 Balanced Binary Tree
- vb.net – “make single instance application”这是做什么
- perl – 连接到sqlite文件时强制只读
- go语言通过反射获取和设置结构体字段值的方法
- perl---window下Mojolicious框架morbo启动后修改templates不
- bfprt算法,中位数的中位数算法,O(n)时间复杂度求解第k大数