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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)