1

現在、私の FMX プロジェクトは完全に Livebinding に基づいており、データソースをフォームのエディターに接続しています。

遅く、ページング読み込み (TLisView) を使用しないことに加えて、うまく機能します。

しかし、私は多くの異なるデータソースを持っており、データ量が膨大になり、最終的に接続が遅くなる可能性があります。

私の考えは、ユーザー インターフェイスの応答性を維持し、バックグラウンドのスレッドがデータ ソースを開いてデータをロードし、適切な状態にすることです。その後、データソースをフォーム上のコントロールに割り当てます。

LiveBinding でそれを試してみましたが、メイン スレッドとバックグラウンド スレッドを混在させることはできません。いくつかの問題が発生しました。

各フィールド レコードを各コントロールに手動でロードする必要があるのは、非常に生産的ではないようです。私が使用するほとんどすべてのコントロールはすでにラップされています。FMX のコントロールに基づいて独自のコントロールを作成したので、さらに機能を追加することができます。

すでに何かが行われているのだろうかと思っていました。ソースとターゲットをマップするために使用でき、必要なときにアクティブ化するコントロールを持つことができる任意のクラスまたはライブラリ。これは、スレッドによって多くのデータソースを読み込み状態にすることができるためです。

4

2 に答える 2

1

これは実際には拘束力のある質問ではありません。

また、ライブバインディングがない場合、スレッドでデータを取得するときは、スレッド コンテキストを尊重する必要があります。接続からデータセットを取得すると、このデータセットもその接続にバインドされ、接続はスレッド コンテキストにバインドされます。

解決策は、データセットを clientdataset にコピーし、その CDS を UI スレッドに渡すことです。これで、その CDS を好きな場所にバインドできます。CDS とデータ接続の間に接続がないことに注意してください。変更を書き戻すように注意する必要があります。

于 2015-02-03T10:32:46.807 に答える