问题标签 [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.

0 投票
1 回答
620 浏览

delphi - Delphi Livebindings - 在 CustomFormat 中包含其他字段值

这应该很简单,但我似乎很难让它发挥作用。

很简单,我有一个 name 列和一个 id (autoinc) 列,我想使用 Live Bindings 将这两个字段组合成一个标签控件。

我已将自定义控件设置为

"%s (Self.Owner.FieldByName('ind_id').Text)"

但无济于事,我只是说“名称 0”是 0 应该是字段 ID 值。

关于我做错了什么的任何想法!?

提前致谢。

0 投票
1 回答
274 浏览

delphi - 如何在 XE6 中删除 Firemonkey Desktop 中的实时绑定?

我在这里有一个从 Edit 控件到 SpinBox 控件的实时绑定。

选择它并按键盘上的 Delete 键无效。Ctrl+X 或 Edit -> Cut 或 Edit -> Delete 菜单项也不行。

如何删除它?

在此处输入图像描述

0 投票
1 回答
1962 浏览

delphi - TListView 记录按需加载

我已经使用 TListView 制作了我的应用程序,以将主数据集显示为列表作为导航记录的方式。我已将 LiveBindings 与 Sync <-> * 连接一起使用。

主要问题是它将整个表加载到内存中。大多数时候这很慢,现在把它带到安卓上更糟糕。

我还没有找到任何关于如何分页的例子。我没有使用 sql,我使用的是自定义数据集 (Aurelius) 来按需检索记录。

由于我没有找到任何文档,因此我没有起点或代码可以分享。

如何让 TListView 按需加载记录?

PS。有一个类似的SO question,但这可以通过 SQL 语句来解决。我没有可用的 SQL,我想知道 FMX 的实际版本是否可能是更好的方法。

0 投票
1 回答
872 浏览

delphi - 与 LiveBindings 和数据集一起使用时如何使 TProgressColumn 工作

我的目标是拥有一个包含多个列的 TGrid,通过 LiveBindings 连接到 TClientDataSet。其中一列是 TProgressColumn 类型。

网格显示数据,但进度条列不显示任何内容(即 0% 进度)。

TProgressColumn 连接到 ftInteger 类型的字段。此字段中的值介于 0 和 100 之间。

我尝试过使用 ftSingle,但没有运气。我通过 ColumnStyle 属性将列的类型设置为 TProgressColumn,该属性在 TLinkGridToDataSourceBindSourceDB/Columns 下可用。

奇怪的是,当我使用 TPrototypeBindSource 生成值时 - TProgressColumn 有效,但仅适用于 ftUInteger 值。ftInteger 生成器失败。

这是一个小演示(Delphi XE7):

TProgressColumn 问题

当我在 TProgressCell.DrawCell() 中放置一个断点并跳过 Value.IsOrdinal 和 Value.IsType 的两个条件时,ClampValue 接收到一个值为 0 的“Min”。该值似乎有问题,通过到功能。

使用 TProgressColumn 时有什么特别之处吗?我需要在 TLinkGridToDataSourceColumn 中使用 CustomFormat、CustomParse 吗?

这是一个错误还是我错过了什么?

更新: 感谢“nompa”,谜团解开了!

事实上,“asInteger”是 TField 类的众所周知的属性,即:

TProgressColumn - 已解决!

在 CustomFormat 属性中,您可以访问许多东西,包括 self.asInteger 属性。更多信息在这里:

  1. 在 LiveBindings 中使用自定义格式和解析表达式
  2. 在 TLinkPropertyToField 组件的 CustomFormat 属性中使用绑定表达式
  3. 格式化你的字段
  4. 如何将整数字段视为布尔值?
0 投票
2 回答
1561 浏览

delphi - delphi live bindings 过滤组合框

我有 2 个组合框链接到在类型和子类型表中查找值的表。当用户选择第一个时,我需要在第二个中过滤数据。

示例数据:

在实时绑定之前,您可以在第二个弹出事件之前或第一个组合框的关闭或更改事件上过滤和刷新第二个数据查找(子类型)。当我使用实时绑定尝试此操作时,它没有效果。我也尝试使用该Bindlist.Notify方法但没有成功。

0 投票
1 回答
473 浏览

class - LiveBindings 还是 OOP?

我有一个关于 OOP 的问题。我对 Delphi 并不陌生,但我是自己学习的,主要是从互联网上学习的,并没有以“正确”的方式学习。几周前我才开始研究 OOP。所以这是我的问题:我有一个名为“Session”的自己的类。此类通过 Visual LiveBindings 与 Edits 连接。我想用来自 TClientDataset 的数据填充我的班级(我不直接将数据集与编辑绑定是有原因的)。现在我有两个想法: 1. 我构建了另一个实现数据集并处理文件打开和导航的类。2. 我将 ClientDataset 拖放到我的 Form 并使用 Livebindings 将其连接到我的类,如下所示: DataSet <---> Class <---> Edit

我希望你能理解我的描述。那么:哪个想法更好?我感觉 LiveBindings “破坏”了 OOP 的概念。另一方面,我不需要编写代码和类型转换,因为实时绑定为我完成了这些。那么你会选择哪种方式,为什么?还是有人有其他想法?

我希望你明白我的意思并能帮助我:)

0 投票
0 回答
284 浏览

delphi - 我可以使用 Delphi LiveBindings 从 TObjectBindSourceAdapter 创建一个包含两列“名称”、“值”的可编辑列表吗?

使用 Delphi XE7 和 FireMonkey,我正在寻找在 TGrid 中显示(和编辑)某些对象属性值的简单方法。我遵循了教程,展示了如何将 TGrid 列绑定到对象属性,并使用TObjectBindSourceAdapter我的一个对象填充了一个整洁的单行网格,如示例中所示。

但是,我在网格中只会有一个对象(单行),所以我真的很想将我的网格数据旋转 90 度以给我两列 - 一个固定的“名称”和一个可编辑的“值”。然后我的对象属性将垂直列出(实际上就像 Object Inspector 视图一样)。

是否有这样做的 LiveBindings 方式,或者我应该使用另一个控件,如 TListView?我是 LiveBindings 的新手!

感谢您的任何建议。

0 投票
1 回答
1000 浏览

delphi - 将记录添加到 TFDTable 后如何更新 TListview?

列表视图BindSourceDBTFDTableas 数据集绑定。列表视图确实按预期显示了数据集中的数据。但是,当向数据集添加新记录时,绑定不会自动刷新表:因此新记录在列表视图中不可见。

添加记录如下:

使用TBindings.Notify( BindSourceDB, '')不会触发刷新。

使用TBindNavigator添加记录会重新填充列表。

如何让列表视图自行更新以显示新添加的记录?

0 投票
1 回答
1197 浏览

delphi - 可空标量类型和 LiveBindings

我想使用实时绑定将自定义 delphi 对象的 TObjectList 绑定到网格。我希望对对象属性有 Nullable 支持,这样如果它们没有值,它们会在网格中显示为空白,并且编辑类似于数据集如何处理可为空的 db 列。

我假设 Delphi 语言不支持可空类型?

我会创建一个TPrototypeBindSource并绑定 FMyObjectList 使用OnCreateAdapeter

有人可以指出我如何做这样的事情的正确方向吗?谢谢

编辑/回答:

Nullable 类型的最佳选择是 Spring4D,但无法使用 Live 绑定直接绑定这些值。

0 投票
0 回答
277 浏览

delphi - iOS 上的 LiveBindings 内存泄漏

我正在使用此代码来更改项目TListView在运行时在 a 上的显示方式:

我使用Instruments在 iPhone 上监控了我的应用程序,TMoveArrayManager每次执行此代码时,我都会看到大约 1 GB 的泄漏实例。仅仅几次之后,我的 iPhone 内存不足并关闭了我的应用程序。我试图找到一种更好的方法来在运行时处理和创建实时绑定,但找不到更好的解决方案。有没有人遇到过这样的实时绑定问题?