有谁知道与泛型和 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;
这应该是可能的。fielddefs 可以通过 RTTI 创建,因为数据的确切类型是已知的。值也可以自动来回编组,因此您可以查看和编辑类或记录中的数据。
我讨厌编写大量无用的编组代码,而所需的信息已经可以通过 RTTI 获得。
或者也许有人曾经写过某种 TEnumerable <-> TDataset 适配器?
是否存在类似的东西,或者我应该开始写一个吗?
...
我能找到的最接近的东西是 Marco Cantu 的一个(优秀的!)示例,来自 Mastering Delphi 7,但代码本身并没有使用新的语言特性,如泛型、新的 RTTI 系统或属性,而且它没有不能与 Unicode delphi 一起使用。自 D7 以来,TDataset 也发生了变化。