StringGrid作为用记录入数据界面,以下代码是实现点击时产生一个新行,问题是:当StringGrid中有数据时,即用户保存过单据,再修改StringGrid处于可编辑状态,执行以下代码会在新产生的行中显示上一行的数据,也就是说产生了一个有数据的行,数据与上一行相同。百思不得其解呀,,,procedure TForm10.GridsClick(Sender: TObject);//***********鼠标点击时产生一个新行***********//
if (StringGrid.Row=StringGrid.RowCount-1)and (nbNew.Enabled=False)and(nbSave.Enabled=True) then
StringGrid.RowCount:=StringGrid.RowCount+1;
StringGrid.Rows[StringGrid.RowCount].Clear;
StringGrid.Refresh;
end;
if (StringGrid.Row=StringGrid.RowCount-1)and (nbNew.Enabled=False)and(nbSave.Enabled=True) then
StringGrid.RowCount:=StringGrid.RowCount+1;
StringGrid.Rows[StringGrid.RowCount].Clear;
StringGrid.Refresh;
end;
换成
StringGrid.Rows[StringGrid.RowCount-1].Clear;
//这你是不是漏了一个begin?
StringGrid.RowCount:=StringGrid.RowCount+1;
//否则下面3行应该靠前
StringGrid.Rows[StringGrid.RowCount].Clear;
StringGrid.Refresh;
end;
StringGrid.RowCount:=StringGrid.RowCount+1;
只是在最下面增加一行而已