- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何人都可以帮助我在 FireMonkey 中重现 TDBLookupCombobox 功能吗?
最佳答案
我不知道是否有更好的解决方案,但这就是我所做的:
假设您有表 1 和表 2 的外键。
Text
属性在 Table2 中查找字段并用以下内容填充 Tag
属性表2的主键。 Selected.Tag
以及表 1 中的外键。编辑:
检查 TBindList 和 TBindPosition 的 SourceComponent 属性。
TBindList 应指向 Table2 的 BindScopeDB。
TBindPosition 改为 Table1 的 BindScopeDB。
ControlComponent 应该指向您的 TComboBox。
当您使用 TBindList 时,Format
集合表达式引用 ComboBox 内的单个项目,因为它会循环遍历 Table2 中的每一行来填充控件。所以 ControlExpressions 是每个项目的属性:
文本
,标签
注意:您不需要Selected
以及这些 SourceExpressions:
FieldByName(LookedUpField).AsString
,FieldByName(PK).AsInteger
将这些表达式放入 Format
集合中。
TBindPosition 相反,始终引用整个 ComboBox,因此您需要使用 Selected
。控制表达式:
选定的标签
选定文本(自己)
,
源表达式:
FieldByName(FK).AsInteger
,FieldByName(LookupField).AsString
请记住,PosSource
集合用于设置“ControlExpressions TO SourceExpressions”分配,而 PosControl
包含“SourceExpressions TO ControlExpressions”分配。
基本上,您需要两件事:当 Table1 光标更改时更改所选项目,并在用户更改时使用所选项目的 Tag 属性设置 FK。
所以只需将它们放入您的 PosControl 集合中即可:
SelectedText(Self)
ControlExpression
FieldByName(LookupField).AsString
SourceExpression
以及您的 PosSource 集合中的这些:
Selected.Tag
ControlExpression
FieldByName(FK).AsInteger
SourceExpression
如果您想实现与 TDBLookupComboBox 类似的行为,则必须在选定的组合框项更改时将表置于“编辑”状态。
当我几个月前尝试 Firemonkey 时,我需要更多表达式来更新 StringGrid 中显示的相同字段,但我不知道是否有更好的解决方案。希望其他人能够回答并分享他的经验。
有关更多信息,请查找 XE2 附带的示例。
希望这对您有所帮助。
关于delphi - TDBLookupCombobox FireMonkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10211668/
TDBLookupCombobox 任何人都可以帮助我在 FireMonkey 中重现 TDBLookupCombobox 功能吗? 最佳答案 我不知道是否有更好的解决方案,但这就是我所做的: 假设您
我有一个 TDBLookupComboBox,显示 fkLookup 类型的 TStringField,它允许 Null 值(来自可为空的值)整数数据库列)。 下拉列表显示分配的 LookupData
我是一名优秀的程序员,十分优秀!