Unterstützen DSharp Bindings auch Expressions ohne
DWS?
Code:
TBinding.Create(Label1, 'Caption', Edit1, 'Text' + 'zusätzlicher Text', bmOneWayToSource);
Sehr schönes Framework übrigens.
Danke und jein, sobald der Text über Property oder Methodennamen hinausgeht (du kannst sehr wohl Eigenschaften und Methodcalls - sofern parameterlos - verketten, etwa 'Font.Size' oder 'Parent.Name') geht das nicht ohne DWS.
Ich arbeite gerade an einer besseren Integration von DWS in die Bindings. Dabei stellt sich mir noch das Problem in den Weg, wie ich in DWS den Scope auf eine Variable (ich nutze ja den TdwsRTTIConnector) setzen kann (sonst müsste ich in der Expression nämlich 'Edit1.Text + "zusätzlicher Text"' oder 'Self.Text + "zusätzlicher Text"' schreiben. Also mir fehlt quasi das
with...do
statement in DWS, was dann noch zusätzlich mit Variants funktioniert, was in Delphi ja nicht geht.
Im Moment kannst du das nur im Code selbst erstellen (TDelphiWebScriptExpression). Oder du gibst einen Value Converter an, der dir an den Wert aus der Text Property 'zusätzlicher Text' hängt. Ich selbst bin etwas skeptisch, was zu viele Magic strings angeht, da sich dadurch sehr schnell Fehler einschleichen. Und am Ende sitzt man da und braucht eine dicke Designtime Validierung, ob die ganzen Expression Texte, die man angegeben hat, auch funktionieren. Die Bindings sollen keine Scriptsprache werden, sondern nur Datenfluss von A nach B regeln.