基类B
type
A = class
public
FObjects: //就是这里 TList 还是 Array of TObject ??
……
……
end;
B = class(TComObject)
Public
AObject: A;
……
……
end;
从B派生类B1, B2 等等。
B1、B2中的FObjects是确定的,但不同。
比如说,Length(B1.A1.FObjects):= 5 ; Length(B2.A2.FObjects):=10
而且,FObjects是只读的,里面的元素按一种顺序排列固定不变的。
用Array of Tobject 吧:
1。好象不能用SetLength( array, 0)来释放数组,不知道怎么释放。
2。Array of Tobject要不要建实例(算TObject吗?)
B1.A1.FObjects[1]: = obj1这样直接赋值行不行。
用TList吧:
1。用Add方法会从索引0开始存。而我的要求是,每个元素的位置是固定的,
很可能,我只想用的索引 3, 4, 5
还有一个问题
基类C 的implementation 中定义了一个变量 var Param: TObject;
子类 D = Class(C), 那子类会继承param吗?我的测试是不能,请确认一下。
type
A = class
public
FObjects: //就是这里 TList 还是 Array of TObject ??
……
……
end;
B = class(TComObject)
Public
AObject: A;
……
……
end;
从B派生类B1, B2 等等。
B1、B2中的FObjects是确定的,但不同。
比如说,Length(B1.A1.FObjects):= 5 ; Length(B2.A2.FObjects):=10
而且,FObjects是只读的,里面的元素按一种顺序排列固定不变的。
用Array of Tobject 吧:
1。好象不能用SetLength( array, 0)来释放数组,不知道怎么释放。
2。Array of Tobject要不要建实例(算TObject吗?)
B1.A1.FObjects[1]: = obj1这样直接赋值行不行。
用TList吧:
1。用Add方法会从索引0开始存。而我的要求是,每个元素的位置是固定的,
很可能,我只想用的索引 3, 4, 5
还有一个问题
基类C 的implementation 中定义了一个变量 var Param: TObject;
子类 D = Class(C), 那子类会继承param吗?我的测试是不能,请确认一下。
______________不用管他,你把对象都释放了就行
2。Array of Tobject要不要建实例(算TObject吗?)
B1.A1.FObjects[1]: = obj1这样直接赋值行不行。
______________No problem用TList吧:
1。用Add方法会从索引0开始存。而我的要求是,每个元素的位置是固定的,
很可能,我只想用的索引 3, 4, 5
______________想要实现办法很多
就你说的这些,我觉得还不如就用Array of Object还有一个问题
基类C 的implementation 中定义了一个变量 var Param: TObject;
子类 D = Class(C), 那子类会继承param吗?我的测试是不能,请确认一下。
______________不能,var中声明的不是属于某个类的吧 那是unit的内容,只要uses了这个unit,整个application可见
我是需要一个静态属性,delphi本身没有
看人家的文章,可以用
implementation
var Param: TObject;
end;
这样来实现。
如果是属于unit的,那么有unit A1、 A2都uses了这个unit
那么在unit B中 uses了A1, A2,那不是param的值全部一样了???那下面的要求怎么实现?
基类
type
A = class
public
class preporty Info: TObject; //delphi没有类属性
end;A有子类A1, A2 等等
A1, A2中的 class preporty Info是不同的
怎么实现?
A = Array of TObjectvar
A1: A;A1怎么建一个实例?
A1: A;
jjj: TObjectA1=Setlength(A,10);
A1[i]:= jjj.Create;就可以,不过记得A1[i].Free;