Also ich würde es eher in Form2.OnShow schreiben.
Denn das Form2 wird (normalerweise) gleich bei Programmaufruf created. Danach machst Du es nur noch sichtbar. "Form2.Show"
Zudem wird Dein StringGrid eventuell erst NACH OnCreate erzeugt, und dann ist Essig.
FormActivate könnte auch funktionieren. Kannst ja einfach mal einen Haltepunkt reinsetzen und schauen ob, und wann es aufgerufen wird.
Das mit dem Kopieren kapier ich nicht ganz. Warum kopierst Du ein komplettes Array, wenn Du auch direkt von Form2 auf das Array in Form1 zugreifen kannst ? Nun, Du wirst Deine Gründe haben...
_________________
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."