我有一个FireMonkey Mobile应用程序,我在实际表单上使用了TSQlConnection和TSQLDataset。数据集填充TComboBox没有任何问题,但后来我决定将所有数据库代码等放入DataModule。
移动TSqlConnection和数据源并添加Datamodul。检查以确保一切正常并且没有问题。然后我从表单中删除原始组件并完全删除绑定。重做绑定,以便它们使用数据模块中的数据。构建应用程序并使用正确的表单......组合框中没有任何内容。
数据集开放等附加事件,它们都是开放的,没问题。甚至在绑定上触发FilledList事件......那么为什么他们以前不会出现?
Combobox代码
object itemModel: TListBoxItem [1]
Height = 44.000000000000000000
Position.Y = 44.000000000000000000
StyleLookup = 'listboxitemnodetail'
Width = 384.000000000000000000
object cboModel: TComboBox
Align = alClient
DisableFocusEffect = False
Height = 32.000000000000000000
TabOrder = 0
Width = 384.000000000000000000
end
end
数据源代码
object BindSourceDB2: TBindSourceDB
DataSet = dmdLocal.dsModels
ScopeMappings = <>
Left = 176
Top = 272
end
链接填写代码
object LinkFillControlToField2: TLinkFillControlToField
Category = 'Quick Bindings'
Control = cboModel
Track = True
FillDataSource = BindSourceDB2
FillDisplayFieldName = 'MODEL'
AutoFill = True
BufferCount = -1
AutoBufferCount = False
FillExpressions = <>
FillHeaderExpressions = <>
FillBreakGroups = <>
end
编辑添加代码
答案 0 :(得分:2)
您需要确保在表单之前创建数据模块。打开表单时就是这样,有一个dmdLocal的实例(在本例中),后者又有一个你所追求的数据源的实例 - 在本例中是dsModels。否则,一旦知道数据模块已创建,就可以在运行时分配属性。