Einzelnen Beitrag anzeigen

Crowbar

Registriert seit: 17. Jun 2002
43 Beiträge
 
#7

AW: onChange Ereignis

  Alt 12. Feb 2015, 11:42
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!
  Mit Zitat antworten Zitat