1

我有一个 FireMonkey Mobile 应用程序,我在实际表单上使用了 TSQlConnection 和 TSQLDataset。数据集填充 TComboBox 没有问题,但后来我决定将所有数据库代码等放入 DataModule。

移动 TSqlConnection 和数据源并添加 Datamodul。检查以确保一切正常并且没有问题地打开。然后我从表单中删除原始组件并完全删除绑定。重做绑定,以便它们使用数据模块中的数据。构建应用程序并采用正确的形式......组合框中没有任何内容。

在数据集的开放等上附加事件,它们都是开放的并且没问题。甚至会在绑定上触发 FilledList 事件......那么为什么它们以前不会出现呢?

组合框代码

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

编辑添加代码

4

1 回答 1

2

您需要确保在表单之前创建数据模块。因此,当打开表单时,有一个 dmdLocal 的实例(在本例中),它又具有您所追求的数据源的一个实例 - 在本例中为 dsModels。否则,一旦您知道数据模块已创建,您就可以在运行时分配该属性。

于 2013-12-01T21:36:37.070 回答