Du nimmst dir eine TGridRect-Variable, befüllst sie und weist sie dem StringGrid.Selection zu?
Ups, den wirren Text bissl falsch verstanden.
Man kann mit einer/zwei Schleifen die Cells durchlaufen, welche in StringGrid.Selection angegeben sind.
Und wie kommt man bitte auf die
saublöde schlaue Idee im OnPaint den Inhalt/Aufbau der Form/Komponente verändern zu wollen,
was wiederum ein OnPaint auslöst und mit etws Glück denjenigen mit einer Endlosschleige betraft?
-> OnResize und OnCreate (oder OnShow)
PS: Du hast einen Rechenfehler
SringGrid.ClientWidth macht das Rechnen einfacher, wenn man die Breite des Rahmens ignoriert. (und vielleicht auch noch die Breite des ScrollBalkens)