Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#242

AW: Welche Konsequenzen zieht ihr aus den Features für XE2?

  Alt 2. Sep 2011, 12:09
Mag mir jemand erklären, wo der Sinn bei Live-Bindings liegen, wenn ich denen mittels Notify erst mitteilen muss, dass sich was geändert hat? Dann hab ich doch fast genau so viel Glue-Code wie vorher auch, oder nicht?
Leider wurde das scheinbar nicht konsequent in die VCL Controls (zu FMX kann ich nicht viel sagen) eingebaut. Einer meiner vielen Kritikpunkte zu den LiveBindings bisher. Theoretisch gibt es über die neue Observer property von TComponent die Möglichkeit, dass, was ich in der extra "Zwischenunit" bei DSharp gemacht habe direkt in den entsprechenden Change methoden der Controls einzubauen. Das scheint auch der Fall zu sein für einige Controls (angeschaut bei TEdit und TCheckBox). Allerdings stimmt dort die Reihenfolge nicht, so dass der Observer feuert, bevor die Property aktualisiert wurde (KeyDown Methode im TCustomEdit z.B.). Außerdem registrieren die TBindingExpression Objekte keine Observer, dies tun nur die TBindLink Objekte (weiterer Kritikpunkt, keine gemeinsame Basisklasse). Diese haben aber noch das Problem, dass das SourceObjekt ein bestimmtes interface (irgendwas mit IEditBindLink oder so) implementieren müssen. Ansonsten bleibt das TEdit einfach ma ReadOnly.

Was mir am LiveBinding überhaupt nicht gefällt ist die Beschränkung auf TComponent. Gibts dazu irgend welche Aussagen? Die Anbinung des eigenen BusinessModel kann man so vergessen.... Da es ja offensichtlich per RTTI geht, warum wurde das nicht schon viel weiter oben in die VCL eingehängt?
Bindings arbeiten auch mit TObject. Die Property heißt aber anders (DataObject oder so...) Das fällt nur in der IDE nicht auf, weil man dort ja nur TComponent Derivate hat. Ich glaube in der Doku gibts ein Beispiel, wie man einfache Objekte über Bindings aneinander heftet.


Generell kann ich mich des Eindrucks nicht erwehren, dass das Hauptziel der LiveBindings das fitmachen von FMX für DB Geschichten ist. Dann schien jemandem aufgefallen zu sein, dass man da ja noch mehr draus machen kann aber es wurde nicht konsequent und qualitativ hochwertig umgesetzt.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 2. Sep 2011 um 12:12 Uhr)
  Mit Zitat antworten Zitat