Hallo,
Row[x].Text kann man auch direkt vergleichen.
Hier mal mein Ansatz, als Inline-Prozedur, da A mit B und B mit A verglichen werden muss.
Delphi-Quellcode:
procedure SynchronisiereGrids(SG1,SG2: TStringGrid);
//**** inline *******
{} procedure Synchronisiere(SGSource, SGDest: TStringGrid);
{} var z,zz : Integer;
{} begin
{} for z := 0 to SGSource.RowCount-1 do
{} for zz := 0 to SGDest.RowCount-1 do
{} begin
{} if SGSource.Rows[z].Text = SGDest.Rows[zz].Text then
{} break;
{} if zz = SGDest.RowCount-1 then //nicht gefunden
{} begin
{} SGDest.RowCount := SGDest.RowCount + 1;
{} SGDest.Rows[SGDest.RowCount-1].Assign(SGSource.Rows[z]);
{} end;
{} end;
{} end;
//***** Ende inline ******
begin
Synchronisiere(SG1,SG2);
Synchronisiere(SG2,SG1);
end;
Der Aufruf
SynchronisiereGrids(StringGrid_A,StringGrid_B);
//Edit: nicht benutzte Variable c gelöscht