Код:
procedure TForm1.Button1Click(Sender: TObject);
var i, j: Integer;
begin
i:= 0;
while i <= StringGrid1.RowCount - 1 do
begin
if Trim(StringGrid1.Rows[i].Text) = '' then
begin
for j:= i to StringGrid1.RowCount - 1 do
StringGrid1.Rows[j]:= StringGrid1.Rows[j+1];
StringGrid1.RowCount:= StringGrid1.RowCount - 1;
end
else
Inc(i);
end;
end;
Точно, когда переходил от for к while, забыл, что границы включаются (или i<RowCount)