其实实现的技术的难度并不大——作者在此将自己实践的经验献给大家,算作抛砖引玉,希望能看到其他更好的方法!
以下先介绍该方法涉及的一些基础知识,然后用一个例子来说明具体的实现。
一、基本概念
元类(meta class),也叫类引用类型(class-reference type),可以看成是一种类的类型,以该类型声明的变量的值代表一个类。比如:
type
tclass = class of tobject;
这样就声明了一个元类的类型。然后可以有这样的变量声明:
var
aclass: tclass;
那么,就可以有这样的用法:
aclass := tobject;
或者:
aclass := tbutton;
或者:
aclass := tform;
等等。
因为tclass是一个tobject类型的元类,而tbutton,tform等都是自tobject派生而来,因而tbutton和tform这样的值对于aclass都是可接受的。