Wieso weist du nicht beim Erstellen/Anzeigen des Formulars oder beim Befüllen der Komponenten das OnChange zu? So mache ich das jedenfalls. Klar kann man da die eine oder andere Komponente vergessen, aber das fällt doch sofort auf, wenn sich der Speichern-Button nicht ändert beim Ändern eben dieser Komponente.
[EDIT]
Ich benutze sowas in der Art:
Delphi-Quellcode:
procedure TForm1.ToggleChangeEventHandlers(Enable: Boolean);
var tne: TNotifyEvent;
begin
if Enable then
tne:= SetPropertiesChanged
else
tne:= nil;
//--- Set all OnChange/OnClick event handlers
editName.OnChange:= tne;
editCommandLine.OnChange:= tne;
checkEnabled.OnClick:= tne;
editComments.OnChange:= tne;
comboShowWindow.OnChange:= tne;
comboLocation.OnChange:= tne;
end;
Alles ist zentral in dieser Methode. Das hat sogar den Vorteil, dass man temporär alle Behandlungsroutinen abschalten kann, wenn man es braucht (z.B. Speichervorgang).
MfG Dalai