在很多书上都提到类引用,就象上面这种形式.由于那些解释都是很难懂的,现在我还是一知半解.恳请勇士用最简单的语言解释一下,先重谢了.
解决方案 »
- dbgrideh 一列里面加图标,图标后面还有文字?
- 如何将函数放到消息队列最后
- 急救!关于Dll方面的疑问:装载了dll后,直接关闭主程序会报错...
- 很久以前,记得有个叫计算机介质的兄弟。顺便散粪
- 存储过程因为使用游标处理速度很慢,Boss要我改为程序执行,还是一样子的慢,今天就要交货了,急得我想跳楼啊!!!!!!!!!!!!!!!
- 新建了一个Component,编译即出错。
- 想学delphi,环境是delphi6,要如何才能学会呢??有什么要准备??
- Delphi 调用 java 的servlet (着急),用什么控件
- ftp下载文件夹,怎么处理为好?
- 国外一款远程管理软件编译后出错,第一次见,高手围观,求解决!!!
- 哪里有好的画平面图的控件?可以预先定制铁路、桥梁等标志,在画图时托拽到图上。
- 从哪可以找到QRDBMemo控件?
To see how class-reference types are used, look at the declaration of the constructor for TCollection (in the Classes unit):type TCollectionItemClass = class of TCollectionItem; ...
constructor Create(ItemClass: TCollectionItemClass);This declaration says that to create a TCollection instance object, you must pass to the constructor the name of a class descending from TCollectionItem.
Class-reference types are useful when you want to invoke a class method or virtual constructor on a class or object whose actual type is unknown at compile time.
function CreateOneForm(FormClass: TFormClass): TForm;
begin
Result := FormClass.Create(nil);
end;
定义TClass =class of TObject 后,TClass和TObject都可以用来声明类实例,但是TClass还可以用来声明类引用类型的参数。
var
Obj: TClass;
和Obj: TObject;所声明的Obj是完全一样的。
更不是对象的引用,它只是对类的类型引用。
type
TMyClassRef=class of TMyClass;
这样就可以声明两个类型的变量,
第一个变量引用对象,
第二个引用类:
aClassRef:TMyClassReg;
AnObject:TMyClass;
begin
aClassRef:=TMyClass;
AnClass:=TMyClass.Create;
end;
FrameSniper ,
你小子这几天跑那去了?MM还没搞定?属性存放在什么地方还没搞定? 还有心情哭?
TOBJECT.CLASSTYPE就是这个指针,实际上任何一个对象的PINTEGER(@OBJECT)指的也就是这个对象的VMT也是TOBJECT.CLASSTYPE
function TObject.ClassType: TClass;
begin
Pointer(Result) := PPointer(Self)^;
end;