Napisałem taką procedure która ma usunac trzeci wiersz z drugiej macierzy w której mają byc takie same wartosci jak w pierwszej macierzy. Procedura działa jednak usuwa 2 wiersze mianowicie 3 i 10 wiersz. Możecie sprawdzic gdzie jest błąd. Dodam ze jeżeli w wywołaniu procedury wstawi się stringrid1 to jest usuwany tylko 3 wiersz w 1 stringrid
procedure GridDeleteRow(RowNumber: Integer; Grid: TstringGrid);
var
i: Integer;
begin
Grid.Row := RowNumber-1;
if (Grid.Row = Grid.RowCount - 1) then
{ On the last row}
Grid.RowCount := Grid.RowCount - 1
else
begin
{ Not the last row}
for i := RowNumber-1 to Grid.RowCount - 1 do
Grid.Rows[i] := Grid.Rows[i + 1];
Grid.RowCount := Grid.RowCount - 1;
end;
end;
// druga macierz bez danej kolumny i wiersza
procedure TForm1.Button7Click(Sender: TObject);
var i,j :Byte;
begin
for i:=1 to 10 do
for j:=1 to 6 do
begin
StringGrid2.Cells[j-1,i-1]:=StringGrid1.Cells[j-1,i-1]; //wartosci 2 sa takie jak 1
end;
begin
GridDeleteRow(3, stringGrid2);
end;
end;