1, Wenn du schon dynamisch Formular und Komponenten erstellst dann nimm bitte vernünftige Namen. TForm1 (bzw. Form1) ist 'ne
IDE-Vorgabe und sollte geändert werden. TMainForm oder TFormLoader oder ähnliches ist verständlicher und sagt im Groben aus was das Formular macht.
2, Nimm niemals bei dynamisch erstellten Formularen die von der
IDE angelegte globale Variable im interface-Abschnitt. Am besten löscht du diese gleiche damit du nicht in versuchung kommst.
3, Auch für deine dynamisch erstellten Komponenten überleg dir einen besseren "Merkmechanismus" (z.B. Array of TPageControl, ...) um nicht auf die FindComponent-Methode zurückfallen zu müssen
4, Greif nicht Kreuz- & Quer- auf die verschiedenen Fomularelemente von anderen Formularen darauf zu. Definier dir Zugriffsmethoden (z. B. procedure SetGridCell(Index, x, y: Integer; const Text: String);
Dein Fehler wird mit Punkt 2 zusammenhängen.
Windows Vista - Eine neue Erfahrung in Fehlern.