AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[XE2] Live Bindings

Ein Thema von mquadrat · begonnen am 23. Sep 2011 · letzter Beitrag vom 9. Nov 2011
Antwort Antwort
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#1

[XE2] Live Bindings

  Alt 23. Sep 2011, 16:51
Hallo zusammen,

gibt es irgendwo eine halbwegs sinnvolle Dokumentation der Live-Bindings? Die Dokumentation im docwiki von Embarcadero ist - vorsichtig ausgedrückt - arg übersichtlich. Zu TBindList beschränkt sich die Doku auf einen Satz "TBindList and TBindGridList are used to populate a list or grid.". Da wäre ich persönlich nie drauf gekommen. In sämtlichen Samples (die ich dank docwiki und anschließendem SVN Update des Samples Ordner gefunden habe) wird das immer in Verbindung mit TBindScopeDB genutzt. Da ich nun aber keine Datasets verwende, wollte ich schauen ob ich da nicht auch TBindScope verwenden kann. Die Hilfe hilft nicht wirklich weiter, statt dessen wird statt gar keinem Text lieber mal die Beschreibung von TComponent angezeigt. Bleibt also der Blick in den Source-Code.

Und damit komme ich zur eigentlichen Frage: Hab ich was übersehen oder kann ich via Live-Binding keine TObjectList<T> an VCL-Controls binden?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: [XE2] Live Bindings

  Alt 23. Sep 2011, 17:08
Schau mal hier und da
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#3

AW: [XE2] Live Bindings

  Alt 23. Sep 2011, 17:24
Der Post von Stevie (Delphi Sorcery) bezieht sich auf das DSharp-Databinding. Ich versuche mich nur gerade zwischen Live-Bindings (Vorteil: "offiziell", Expression-Engine) und DSharp (Vorteil: näher an dem was ich eigentlich suche) zu entscheiden

Ich muss aber beim Live-Binding doch den Scope angeben. Und da finde ich nicht wirklich was an Doku. Also beispielsweise: Welche Interfaces muss die Listenklasse erfüllen etc.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [XE2] Live Bindings

  Alt 23. Sep 2011, 17:53
Bezüglich der Expression Engine - DSharp Bindings werden in Zukunft (soom (tm)) eine Integration mit DWS bekommen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#5

AW: [XE2] Live Bindings

  Alt 23. Sep 2011, 17:59
Nice. Dann wäre das ja auch geklärt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [XE2] Live Bindings

  Alt 24. Sep 2011, 01:26
Hab gerade eine erste Version commited - designtime Unterstützung gibt's noch keine.

Daher muss man vorerst noch einiges im Code machen. In zukünftigen Versionen wird man es ähnlich wie bei den LiveBindings im Designer einstellen können.

Hier ein kurzer Beispiel Code:
Delphi-Quellcode:
uses
  DSharp.Core.DataConversion.Expressions,
  DSharp.DelphiWebScript.Expression;

procedure TForm1.FormCreate(Sender: TObject);
var
  bind: TBinding;
  conv: TExpressionConverter;
  expr: TDelphiWebScriptExpression;
begin
  conv := TExpressionConverter.Create;
  expr := TDelphiWebScriptExpression.Create;
  expr.Text := 'UpperCase(Edit1.Text)';
  expr.BindObject(Edit1);
  conv.TargetToSourceExpression := expr;
  bind := TBinding.Create(Label1, 'Caption', Edit1, 'Text', bmOneWayToSource, conv);
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (24. Sep 2011 um 01:30 Uhr)
  Mit Zitat antworten Zitat
BlackSeven

Registriert seit: 25. Sep 2004
79 Beiträge
 
Delphi XE7 Professional
 
#7

AW: [XE2] Live Bindings

  Alt 9. Nov 2011, 10:55
Bezüglich der Expression Engine - DSharp Bindings werden in Zukunft (soom (tm)) eine Integration mit DWS bekommen.
Unterstützen DSharp Bindings auch Expressions ohne DWS?
Code:
TBinding.Create(Label1, 'Caption', Edit1, 'Text' + 'zusätzlicher Text', bmOneWayToSource);
Sehr schönes Framework übrigens.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#8

AW: [XE2] Live Bindings

  Alt 9. Nov 2011, 11:14
AFAIK nicht. Genau dafür ist ja die DWS Integration da.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [XE2] Live Bindings

  Alt 9. Nov 2011, 14:58
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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz