Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

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

AW: [XE5] Richtiges Ereignis gesucht

  Alt 31. Jan 2014, 11:37
Die Formulare werden vererbt, das ist die Basis-Form, von der ich dann meine weiteren Forms ableite.
Darum brauche ich das in den konkreten Forms eben nicht noch mal schreiben sondern nur noch benutzen

Alle Controls sollen bei einer Änderung SyncWithModel aufrufen.
Die meisten Controls haben eine Eigenschaft OnChange : TNotifyEvent .
Darum habe ich die Methode ControlChange( Sender : TObject ) , die bei den meisten Controls schon passt geschrieben (wegen Bequemlichkeit und DRY )
Delphi-Quellcode:
Firstname_Edit.OnChange := ControlChange;
Lastname_Edit.OnChange := ControlChange;
Country_ComboBox.OnChange := ControlChange;
Whatever_ListBox.OnClick := ControlChange;
Wenn ein Control damit nicht abzutüten ist, dann suche ich mir das passende Event heraus und schreibe in die EventMethode
Delphi-Quellcode:
procedure TMyFormView.SomeControlEvent( Sender : TObject; AParam : string );
begin
  ControlChange( Sender ); // geht also doch ;o)
end;
LoadFromModel sorgt dafür, dass die Controls mit den richtigen Daten gefüllt werden (wenn du in der konkreten Form die Methode DoLoadFromModel passend implementiert hast).

Bekommst du jetzt von wo auch immer her die Information, dass sich die Daten geändert haben, dann ruf einfach LoadFromModel auf und die Control werden mit den Werten gefüllt.

Was mich wundert ist die Tatsache, das es immer heißt man sollte den Code nicht in eine Unit packen sondern eine Unit pro Funktion.
Ähm nicht ganz, eine Unit pro Funktionalität.
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)

Geändert von Sir Rufo (31. Jan 2014 um 11:39 Uhr)
  Mit Zitat antworten Zitat