1

実際のフォームで TSQlConnection と TSQLDataset を使用した FireMonkey Mobile アプリがあります。データセットは問題なく 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 に答える