哪位大侠能抽空帮忙解决下关于stringgrid输入数字的小问题???(50分)

  • 主题发起人 主题发起人 lingweifeng
  • 开始时间 开始时间
L

lingweifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
要在一个22x27的 stringgrid控件 的cell中输入数子,在onkeypress事件处理中写代码
但是有下列问题不知道该怎么解决???
(1)不能出现 -.的情况 —> 负号+小数点的情况
(2)第一位不能是小数点,小数点和负号都只能出现一次
(3)负号只能出现在第一位,只能出一次
分值可以再加的!!!
 
if Pos('-.',Stringrid1.Cell[j,i]) > 0 then
ShowMessage('error');
if Pos('.',Stringrid1.Cell[j,i]) =1 then
ShowMessage('error');
if length(grid1.Cell[j,i]) )- length(sttringreplace(grid1.Cell[j,i]),'-','' ) > 0 then
ShowMessage('error');
if Pos('-',Stringrid1.Cell[j,i]) > 1 then
ShowMessage('error');
 
你好,我看了你的回复,但是不明白这是sttringreplace什么意思。另外可能我没写清楚
我是想在Stringgrid控件的onkeypress事件中写代码,这样不用判断每一个Stringgrid中
塡的值是否正确了。你现在写的这个代码应该不能写在Stringgrid控件的onkeypress事件
中的。我想问下这怎么写,我写了两天了,头都大了,麻烦你了!!!
 
我的qq是121144437,有空我们聊聊吧
!!!
 
在OnExit里写了。OnKeyPress里写不适当
 
应该写在onexit里面:
(1)不能出现 -.的情况 —> 负号+小数点的情况
if pos('-.',stringgrid.cells[i,j])> then

begin

ebd;
(2)第一位不能是小数点,
if pos('.',stringgrid.cells[i,j])=1 then

begin
end;

小数点和负号都只能出现一次
n :=0
m := pos('-',stringgrid.cells[i,j])
while m >0 then

beign
n:= n+1
end;
if n >1 then

begin
end;

负号只能出现在第一位,只能出一次
if pos('-',stringgrid.cells[i,j])<>1 then

begin

end;
 
我的问题已经解决了,感谢你们的帮忙,但是你们的解决方法不对。如果有需要我可以发我的代码。谢谢!
 
后退
顶部