procedure deleterow(i:integer;stringgrid1:Tstringgrid);
var r,c,rcount :integer;
begin
with stringgrid1 do
begin
rcount:=rowcount;
for r:=i to rcount-2 do
for c:=0 to colcount-1 do
cells[c,r]:=cells[c,r+1];
dec(rcount);
RowCount:=rcount;
end
end;
var
i,j:integer;
iPos:integer;
begin
iPos:=StringGrid1.Row;
for i:=iPos to StringGrid1.RowCount-1 do
begin
for j:=0 to StringGrid1.ColCount-1 do
StringGrid1.Cells[j,i]:=StringGrid1.Cells[j,i+1];
end;
StringGrid1.RowCount:=StringGrid1.RowCount-1;
end;