在StringGrid1KeyPress里,当KEY=#13时,用format来指定这一行的字符串格式!
在Timer1里,统计某一列的数字总和,可按回车后,为什么显示出来的数字总和为零呀!
这是为什么呀?

解决方案 »

  1.   

    没人知道吗?我现在把主要代码拿出来给大家讨论;
    在StringGrid1KeyPress里:…………
                         if  stringgrid1.col<stringgrid1.ColCount-1 then
                             begin
                           stringgrid1.Cells[6,i]:=formatfloat('0.00',strtofloat(stringgrid1.Cells[6,i]));
                stringgrid1.Cells[5,i]:=formatfloat('0.00',strtofloat(stringgrid1.Cells[5,i]));
                stringgrid1.Cells[4,i]:=formatfloat('0.00',strtofloat(stringgrid1.Cells[4,i]));
                             end;
                           ………………
    在在Timer1里:………………
                sumje:=0;
                sumsl:=0;
                for k:=1 to 100 do
                  begin
                     sumsl:=sumsl+strtointdef(trim(stringgrid1.Cells[5,k]),0);
                     sumje:=sumje+strtointdef(trim(stringgrid1.Cells[6,k]),0);
                     if trim(stringgrid1.Cells[6,k])='' then break;
                  end;
                stringgrid2.Cells[2,0]:=floattostr(sumsl);
                stringgrid2.Cells[4,0]:=floattostr(sumje);
    为什么按回车后,在stringgrid2.Cells[2,0]和stringgrid2.Cells[4,0]里的数字为零呀!各位大虾帮帮忙呀!        
       
      

  2.   

    因为stringgrid1.Cells[5,k]实际上不是有效的数字,因此strtointdef转化出错,返回了默认值0————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————