在dbgrid的oncolexit中进行判断,判断当然要写程序了。
解决方案 »
- ComboBox去相同记录的问题,请教大家!
- 无法捕捉错误,希望出错后关闭程序,该怎么做?
- 图像智能识别,开发图像高手讨论区,高分奉送..................
- 为什么SQL SERVER的ADO驱动不支持分页?
- 关于FastReport3的小问题
- 跪求: 跟TreeView一样可以实现分层显示,而且前面显示复选框的一个控件
- 告急:DEPHI 如何读取网络邻居的共享文件!!!
- 网络游戏客户和服务器实现大讨论!高分或者有合作机会
- QuickReport打幅问题
- Delphi中用Winsocket进行传输时怎样解决文件过长的问题
- 在数据库中设了一个主键,在程序运行时都会按主键的须序排序.我现在不需要它排序怎么办.
- 会FOXBASE OR FOXPRO 的进来帮我看看怎么实现下面的程序,很简单的,过几天就考试了,挺急的
如果你有兴趣的话可以找一找源代码中的各种方法.实在不行的话就自己继承一个.
请在DBGrid中的onkeypress中添加如下代码:
if not key in ['0'..'9','.'] then --具体的几个我记不清楚了,你看着办吧
begin
key:=chr(0);
end
else
begin
--数据处理部分内容
end
if text<>'' then
begin
Try
StrToFloat(Text);
Except
MessageBeep(0);
Raise Exception.Create('数据输入错误!');
end;
end;
可以拦截到数据格式的错误。但如果数据的数据是正确的又有奇怪的问题出现:
如果grid中该单元格的数据是12.如果我输入15,离开单元格后数据又恢复成12。即使我把该事件的代码全部注释掉,也是这样。
var code:integer;
n:real;
val('15..6',n,code);
如果code=0说明小数正确,否则则错误
var s:integer;
try
s:=strtoint(Text) ;
except
On E:EConvertError do
showmessage('wrong type')
Abort;
end;