8

Generics と RTTI で動作する TDataset の子孫を知っている人はいますか?このようなコードを記述して、GUI でデータベース対応コンポーネントを利用できますか? :

...
ds:TDataset<TPerson>;
...

procedure DoStuff;
begin    
  ds:=TDataset<TPerson>.create;
  ds.add(TPerson.Create('A.','Hitler',77));
  ds.add(TPerson.Create('O.','Bin Laden',88));
 end; 

これは可能なはずです。フィールド定義は、データの正確なタイプがわかっているため、RTTI を介して作成できます。値は、前後に自動的にマーシャリングすることもできるため、クラスまたはレコード内のデータを表示および編集できます。

無駄なマーシャリング コードを大量に書かなければならないのは嫌ですが、そのために必要な情報は RTTI で既に入手できます。

あるいは、誰かが何らかの種類の TEnumerable <-> TDataset アダプターを作成したことがありますか?

そのようなものは存在しますか、それとも書き始める必要がありますか?

...

私が見つけた最も近いものは、Mastering Delphi 7 の Marco Cantu による (素晴らしい!)ですが、コード自体は、ジェネリック、新しい RTTI システム、または属性などの新しい言語機能を使用していません。 Unicode delphi では動作しません。TDataset も D7 から変更されました。

4

5 に答える 5

4

TMS Aureliusに含まれる TAureliusDataSet は、それに非常に近いものです。

于 2012-03-02T13:56:46.937 に答える
2

www.inovativa.com.br/publicInovativaEverClassyデータセットをご覧ください。

于 2013-03-08T18:35:18.660 に答える
1

オランダのA- DatoSchedulingTechnologyによるDotNet4Delphiはあなたにぴったりです。

ここに画像の説明を入力してください

引用:

TorryのDelphiから

コレクションデータ対応コントロールに接続します。

DotNet4Delphiは、 List<>やDictionary<>などのジェネリック型を含む多くの.Netコレクションクラスを実装しています。Delphiの対応するものとは異なり、ジェネリックコレクションは非ジェネリックインターフェイス(IList、IDictionary)も実装しているため、複数の方法でコレクションにアクセスできます。これにより、(含まれている)TListDatasetコンポーネントが提供するものとまったく同じ、データ対応コントロールのデータソースとして任意のコレクションを使用するための扉が開かれます。

DelphiXEおよびXE2を対象としています。

これはオープンソースイニシアチブです、Delphiは素晴らしいです!!!

于 2012-04-09T11:03:04.520 に答える
1

もう 1 つは Snap Object Dataset http://digilander.libero.it/snapobject/です。

于 2013-11-01T08:24:17.540 に答える