我正在尝试定义泛型数据模块,如下所示:
TDM<T> = class(TDataModule)
public
function GetValue:T;virtual;abstract;
end;
但是当我这样做时,Delphi误解了数据模块并认为它的形式(添加了表单属性,如Client Width,Font,...到.dfm文件)。 我希望这个数据模块只用于继承,所以我试着把它作为没有.dfm文件的简单类,然后创建继承自它的真正数据模块(带.dfm文件)。 例如:
TDataModule2 = class(TDM<Integer>)
public
function GetType:Integer;override;
end;
一切看起来都很棒,但只有时刻,当我关闭并打开项目时。在项目开放时,Delphi再次将TDataModule2解释为表单(由于某种原因导致异常)。
我正在使用Delphi XE。 有没有办法让这成为可能?