Ja, das ist natürlich eine Lösung. So ähnlich sähe es aus, wenn ich jede Komponente und jede ihrer Eigenschaften (natürlich in Schleifen zusammengefasst) speichern würde.
Es sind trotzdem noch eine Menge unterschiedlicher Komponenten von denen ich unterschiedliche Eigenschaften speichern muss, allein jede Komponente durchzugehen und zu entscheiden, welche Eigenschaften theoretisch änderbar sind und deshalb gespeichert werden müssen wäre im Vergleich recht viel Aufwand.
Es ist aber der einfachste Weg, wenn du nicht grundsätzlich ALLE Properties speichern willst.
Du kannst die Liste auch noch verallgemeinern:
Code:
'*', 'Text'
'TEdit', 'Hint'
'TEdit', 'ShowHint'
'TCustomComboBox', 'ItemIndex'
'TCustomCheckbox', 'Checked'
Das '*' bedeutet dass wenn eine Komponente das Property hat, dann wird es gespeichert ohne die Klasse zu prüfen.
Ausserdem kann man die Prüfung des Klassennamens auch so programmieren, dass auch Vorgängerklassen berücksichtigt werden.