T1继承TCollection,T2继承TCollectionItem
T3,T4,T5继承T2
那T1里面能不能放T3, T4,T5
如果不能,如何实现类似的功能
谢谢各位先
T3,T4,T5继承T2
那T1里面能不能放T3, T4,T5
如果不能,如何实现类似的功能
谢谢各位先
解决方案 »
- 如何实现按住空格2秒钟?
- 用idhttp post报下面的错EIdSocketError with message 'Socket Error # 0'.
- 请问 TidTCPServer 怎么向 TIdTCPClient 发送数据?
- File无类型文件变量怎么判断是否assighFile了一个文件
- 试用期800,转正1200
- 请问怎样用fastreport的frOLEExcelExport?
- 谁有条形码控件,给我一个,马上结贴!!!
- 扫雷游戏源文件谁知道哪能下载?
- VB老手,Delphi菜鸟,初级问题请关注?
- 帮帮我 我刚学delphi !!!!!谁知道那里有他的中文帮助?!
- 怎么用DElPHI语言控制SQl SERVER 的运行状态.(关闭SQL SERVER 和打开SQL SERVER 服务器)
- 请教各位大侠一个语法问题:)
x: T1
y: T2
y := T2(x.add)
这样会出错
y: T2
y := T2(x.add)
如果不是 既 在T1 里定义,TCollection没 定义
应该是不能用的了
子(父) 是不可以的。你的代码 T2(x.add) 等价于:子(父)。所以会出错
创建TCollection的子类,如: TCollectionChild = class(TCollection)...
然后在TCollectionChild中重写Add方法,如:
procedure Added(var Item: T2); override;
...{自己的实现}
然后,
x: TCollectChild;
把刚才那条语句T2(x.add)就不会出错了
x: T1
y: T2
y := T2(x).add
明显不行
T2和T1就没有继承关系
怎么可能可以这样转换
type
TA=Class
Value : Integer;
end;
TB = Class(TA)
Value : String;
end;
var MyObject : TA;
begin
MyObject := TB.Create();
TB(MyObject).Value := '这样就可以,你可以研究研究'
end;
我的意思是TB转TA
或者说我的真正目的是想在一个容器类里面放若干个类的对象
TTI = class of TCollectionItem;//该函数创建从TCollectionItem及其子类型的的实体。
function AddCollectionItem(AItem:TTI): TCollectionItem;
begin
result := AItem.Create;
end;procedure Oper;
var
t3: T2;//T2继承自TCollectionItem
begin
t3 := T2(AddCollectionItem(T2));
end;
procedure OperX;
var
t4: T3;//T3继承自T2,T2继承自TCollectionITem
begin
t4 := T3(AddCollectionItem(T3));
end;