Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: onChange Ereignis

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