In einem StringGrid auf Scrollereignis reagieren und anderes StringGrid per Code scollen

// Ereignis TopLeftChanged von StringGrid1 nutzen
void __fastcall TForm1::StringGrid1TopLeftChanged(TObject *Sender)
{
     // horizontale ScrollBarposition von StringGrid1 ermitteln
     int iScrollPosH = GetScrollPos(StringGrid1->Handle, SB_HORZ);
     // horizontale ScrollBarposition von StringGrid2 setzen
     SetScrollPos(StringGrid2->Handle, SB_HORZ, iScrollPosH, true);
     // Anzeige des Inhalts von StringGrid2 an die akt. ScrollBarposition anpassen
     StringGrid2->Perform(WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, iScrollPosH), 0);

     // vertikale ScrollBarposition von StringGrid1 ermitteln
     int iScrollPosV = GetScrollPos(StringGrid1->Handle, SB_VERT);
     // vertikale ScrollBarposition von StringGrid2 setzen
     SetScrollPos(StringGrid2->Handle, SB_VERT, iScrollPosV, true);
     // Anzeige des Inhalts von StringGrid2 an die akt. ScrollBarposition anpassen
     StringGrid2->Perform(WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, iScrollPosV), 0);
}