Hattest du an sowas in der Art gedacht?
Delphi-Quellcode:
TMyForm = class( TForm )
Edit1 : TEdit; { OnChange => ControlChanged }
Edit2 : TEdit; { OnChange => ControlChanged }
private
FHasChanged : Boolean;
FValue1, FValue2 : string;
procedure ChangeValue( var Variable : string; const Value : string; var HasChanged : Boolean );
published
procedure ControlChanged( Sender : TObject );
end;
procedure TMyForm.ChangeValue( var Variable : string; const Value : string; var HasChanged : Boolean );
begin
if Variable <> Value then
begin
Variable := Value;
HasChanged := True;
end;
end;
procedure TMyForm.ControlChanged( Sender : TObject );
begin
ChangeValue( FValue1, Edit1.Text, FHasChanged );
ChangeValue( FValue2, Edit2.Text, FHasChanged );
end;
Generell sollte man die Speicherung der Daten in einer separaten Klasse auslagern und diese Klasse sorgt dann für die Verwaltung des Status
HasChanged
, der dann einfach gemütlich abgefragt wird und dann gibt man genau diese Klasse zum Speichern. Die Form ist dann nur noch dafür da, wofür die gebaut wurde: Zur Kommunikation mit dem Benutzer und eben nicht auch noch Datenspeicher, Kontrolleur, etc.
Ja, an so eine Art habe ich gedacht. Werde mir Dein Beispielcode für mein Programm entsprechend anpassen und schauen, ob es klappt.
Vielen Dank!