Das würde ich mir nochmal überlegen ... Du hast doch irgendwelche Methoden, in denen die Eingaben des Anwenders verarbeitet werden.
Für die meisten der Komponenten nicht. Die Daten werden über unterschiedliche Komponenten (Edit, Combobobox, Radiobutton etc.) erfasst und beim Drücken des Buttons "speichern" ohne weitere spezielle Verarbeitung abgespeichert. Nur wenige Eingabefelder haben eigene Ereignisbehandlungsroutinen.
Du speicherst Editfelder, ComboBoxen und RadioButtons direkt, verfügst also nicht über irgend eine Datenstruktur, die von deinen Edit-Komponenten bearbeitet werden kann? Das würde ja bedeuten, du speicherst deine Daten in visuellen Komponenten. Das halte ich für keine gute Idee ... Aber egal, mußt du letztendlich selber wissen, da möchte ich jetzt nicht länger drauf rumreiten.
Änderungen eines Editfeldes, einer ComboBox, eines Radio-Buttons etc. lösen OnChange aus: Du legst für all deine Edit-Komponenten dieselbe OnChange-Ereignisbehandlung fest. In dieser legst du dann die Information, daß etwas geändert wurde, fest. Du mußt auch keine Boolsche Variable neu deklarieren, denn du hast ja bereits eine in deinen Speichern-Button zur Verfügung, den du hier auf
Enabled := True setzen kannst. Und schon hast du die Information, daß etwas geändert wurde oder daß alle Änderungen gespeichert sind, im Programm verfügbar. Nach dem Speichern führst du einfach
Speicherbutten.Enabled := False aus.