Delphi XE(ここではVCLについて話している)に、データベース対応のコントロールで動作するジェネリックコレクションクラスがあるかどうかを誰かが知っていますか?つまり、TDataSource.DataSetなどに割り当てることができるTObjectList <>などの汎用クラスはありますか?
ありがとう。
ダン
Delphi XE(ここではVCLについて話している)に、データベース対応のコントロールで動作するジェネリックコレクションクラスがあるかどうかを誰かが知っていますか?つまり、TDataSource.DataSetなどに割り当てることができるTObjectList <>などの汎用クラスはありますか?
ありがとう。
ダン
はい、できます。ObjectDataSetの概念を使用すると、リンクされたサンプルコードを出発点として自分で実装する必要があると思います。
サンプルコードは、通常の非ジェネリックTObjectListとTDataSetの概念を融合する方法を示しています。RTTIを使用して、添付したい任意のオブジェクトタイプのリストを提供します。RTTIを使用し、ジェネリックを使用する必要はありません。むしろ、TPersistentから継承する必要があります。
それの悪い面は、私がそれを使用したことであり、私はそれを二度と使用しないでしょう。結果として得られたコードは混乱し、遅く、モデルはひどいものでした。次回は、データ対応のコントロールを避け、VirtualTreeViewやExGridViewなどの仮想コントロールを備えたコンテナーを使用するだけです。
上記のコードをベースとして開始できず、ジェネリックスとデータバインディングを組み合わせることができなかった理由はわかりませんが、そうすべきでない理由はたくさんあります。
別の意見を持っている:
どちらも、データをビジュアルコンポーネントに公開するのを非常に簡単にするバインディング機能を使用して、期待どおりにGenericCollectionクラスを使用できます。