delphi – 如何获取导致TDBGridInplaceEdit错误的值?

delphi – 如何获取导致TDBGridInplaceEdit错误的值?,第1张

概述我正在尝试编写一个显示用户友好消息的异常处理程序.我不知道如何获得导致TDBGridInplaceEdit错误的“新输入”数据值. 例如: 我有一个DBGrid加载数据.当我故意将第1行的PartNo字段更改为非数字值以导致TDBGridInplaceEdit错误…(从:1313.3到:1313..3)…我捕获错误并显示消息,但我可以’弄清楚如何获得糟糕的’1313..3’值. 原文PartNo: 我正在尝试编写一个显示用户友好消息的异常处理程序.我不知道如何获得导致TDBGrIDInplaceEdit错误的“新输入”数据值.

例如:
我有一个DBGrID加载数据.当我故意将第1行的PartNo字段更改为非数字值以导致TDBGrIDInplaceEdit错误…(从:1313.3到:1313..3)…我捕获错误并显示消息,但我可以’弄清楚如何获得糟糕的’1313..3’值.

原文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;
总结

以上是内存溢出为你收集整理的delphi – 如何获取导致TDBGridInplaceEdit错误的值?全部内容,希望文章能够帮你解决delphi – 如何获取导致TDBGridInplaceEdit错误的值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1246006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存