问题标签 [livebindings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - delphi中的实时绑定接口
我使用 Delphi FireMonkey 平台创建了一个小项目来尝试新的实时绑定功能。我想用项目填充TListBoxTList<IFoo>
并使用BOCollection 示例。BindList.FormatExpressions[0]
具有与示例中的值相似的值。
现在,如果我打电话,BindList.FillList
那么我会收到异常“找不到名称”。但是,如果我使用对象列表(TList<TFoo>
而不是TList<IFoo>
),则不会引发异常并且列表已正确填充 - 它有效!所以看来 livebinding 找不到接口的属性。
IFoo 的定义如下:
是否可以使用接口进行实时绑定?
delphi - TDBLookupCombobox FireMonkey
TDBLookupCombobox
谁能帮我在 FireMonkey 中重现TDBLookupCombobox功能?
delphi - 如何使用实时绑定将 blob 字段绑定到 TImage 控件?
我正在使用 Delphi XE2 编写 VCL win32 应用程序。Delphi XE2 支持实时绑定。我将示例 Biolife.xml 加载到 TClientDataSet 实例中。
我能够将 TEdit 控件绑定到数据集的字符串字段:物种名称:
然后我尝试将图形字段绑定到 TImage 控件:
显然,它不起作用。有可能这样做吗?
delphi - 如何编写基于 TCheckBox.Checked 控制 TEdit.PasswordChar 的实时绑定表达式?
我在表单上有 2 个控件,TCheckBox 和 TEdit。
我想使用 Live Binding 来执行此操作:
- 当 TCheckBox.Checked = True 时,设置 TEdit.PasswordChar = *
- 当 TCheckBox.Checked = False 时,设置 TEdit.PasswordChar = #0
我该如何编写 ControlExpression 来实现这一点?如果我可以避免注册自定义方法,那就太好了。
delphi - Livebindings BindScope 通知
要开始使用实时绑定,我目前正在编写一些演示代码。但是在某一时刻,我遇到了一个问题,我找不到任何文档。
我有一个包含多个 TEdit 的表单,并希望将它们与 TBindScope 绑定到对象的属性。我设置了 BindScope 和 BindingList ,当我执行 BindExpression1.Active := true; 时一切正常;
但是现在我更改了对象的属性并希望通知 BindingList 有更新。
这是问题所在。我找不到任何方法来通知 BindingList,因此它会更新值。但是,如果我执行 BindExpression1.Evaluate 它会同步值。
我尝试使用
- BindingList.Notify(BindScope,'Object.Property')
- BindingList.Notify(BindScope, '对象')
- BindingList.Notify(Object, 'Property');
- BindingList.Notify(BindScope, '属性');
- BindingList.Notify(BindScope, 'Active');
通知似乎没有任何作用。
PS:我知道在这种情况下不需要 BindScope。但是由于它的演示代码是为了理解,我想知道它是如何与 BindScope 一起工作的。
谢谢。
delphi - 我们可以在 Delphi XE2 LiveBinding 表达式中使用布尔运算符吗?
我打算为 TCheckBox 编写一个 Live Binding 源表达式:
执行代码时出现异常提示:
Delphi XE2 Live Binding 是否支持布尔运算符?
sql-server - Delphi XE 3 LiveBindings AutoInc SQL Server
我有一个带有 LiveBindings 到 SQL Server 的 Delphi XE3 Firemonkey 应用程序。我可以连接并查看网格上的所有数据。我有一个字段(“id”),它是 SQL(通常称为 AutoInc)上的“身份字段”。
当我尝试添加记录时,我得到“字段 'id' 必须有一个值。”
过去,解决此问题的方法是关闭必填字段布尔值。(例如,使用 DBISAM,您可以使数据库本身中的字段不是必需的,并且数据库引擎会在它到达那里时将其填充,但您不能在 MSSQL 中创建不需要的标识字段。)
我已经关闭了对 TField 本身的要求,但这没有任何效果。
delphi - Firemonkey livebindings 自定义网格列
我正在尝试将一些自定义列添加到 TGrid,例如将包含 TCalendarEdit 的列并将其实时绑定到 DB。
我想出了两种方法来实现这样的事情。
将 CalendarEdit 放在所有行中。
问题是:我可以创建自定义 TCalendarEdit 列, 可以将其放入 Grid 中, 但随后我将它绑定到数据集 ,它会下降到默认字符串列视图!
TDateColumn = class(TColumn)
protected
function CreateCellControl: TStyledControl; override;
end;
function TDateColumn.CreateCellControl: TStyledControl;
begin
Result := TDateCell.Create(grid);
Result.Parent := grid;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
cec: TDateColumn;
begin
cec:=TDateColumn.Create(grid1);
grid1.AddObject(cec);
end;LinkGridToDataSource1.Columns.Items[LinkGridToDataSource1.Columns.Count-1].MemberName:='date';
在网格单元格上绘制一个控件,然后单击并销毁它,然后单击网格上的任何其他位置(并将其数据写入网格)。
问题是:如何获取单元格 OnClick 的坐标和大小?
谢谢你。
delphi - 使用 TPrototypeBindSource 设计 UI 后如何在运行时切换到 TBindSourceDB?
我正在尝试 XE3 中的 LiveBindings。
我设计了一个带有一些控件的表单,使用TPrototypeBindSource
. 控件在TPrototypeBindSource
使用可视化设计器时被绑定到字段。我可以在设计时看到控件上的随机数据,并且我对布局感到满意。
接下来,我想将 UI 控件与TClientDataSet
实例中的实时数据存储挂钩。有没有简单的方法来做到这一点?
我尝试了该TPrototypeBindSource.OnCreateAdapter
活动,但找不到TBindsourceAdapter
适合TDataset
. 有一个TBindSourceDB
但它无法钩到TBindSourceAdapter
。
TPrototypeBindSource
我找到的唯一解决方案是我必须将链接从to重新分配TBindSourceDB
,这样做会使随机数据在设计时丢失。
有什么方法可以让设计时间使用原型数据和运行时使用数据集的数据?
delphi - XE3 Visual LiveBindings:TSpinBox 和 TTrackBar (FireMonkey) 之间的双向连接
我正在使用带有 SP1 的 Delphi XE3。我创建了一个 FireMonkey 桌面应用程序,并在主窗体上放置了一个 TSpinBox 和一个 TTrackBar。我现在已经使用 Visual Livebindings 连接了 TSpinBox 和 TTrackBar 的“Value”属性。IDE 自动创建了一个“TLinkControlToProperty”来连接它们。当我在 TTrackBar 上移动滑块时,TSpinBox 中的值会发生变化。但是当我更改 TSpinBox 中的值时,TTrackBar 的值不会更新。
如何使用 LiveBindings 将其更改为双向连接?我的目标是在 TSpinBox 的“值”发生变化时更改 TTrackBar 的“值”属性。此外,我对不使用“TSpinBox”的“OnChange”事件的解决方案感兴趣。如果不派生“TSpinBox”的后代,这可能吗?