这是delphi自带的那个例子
type TControlClass =  class of TControl;function CreateControl(ControlClass: TControlClass; const ControlName: string; X, Y, W, H: Integer): TControl;
begin
end;这个和function CreateControl(Control: TControl; const ControlName: string; X, Y, W, H: iNTEGER): TControl;
有什么区别, 用TControl不是一样吗?问个愚蠢的问题, 还望大家不吝赐教:) 谢谢了!~~~

解决方案 »

  1.   

    TControl不是一样可以调用其子类的构造函数么?
      

  2.   

    TControl不是一样可以调用其子类的构造函数么?
    如果只是调用构造函数,不必这么做,
    这样是为了调用protected部分。
      

  3.   

    如果用TControl的话,那么传给过程的参数就是一个类实例了,这样还有什么通用性呢,后面干嘛还要ControlName参数呢??你都知道类实例的名字了!
      

  4.   


    function CreateControl(ControlClass: TControlClass; const ControlName: string; X, Y, W, H: Integer): TControl;
    begin
    end;这个函数实际上是一个通用的对象生成器.它允许你去生成任意父类型是TControl的类型的对象.
    就是说,你传的ControlClass是个类.{强调:是个类}如 Tedit;返回一个对象指针.
    function CreateControl(Control: TControl; const ControlName: string; X, Y, W, H: iNTEGER): TControl;这个函数你传了一个对象Control{强调:是个类的实例}如 edit1 ,就是说对象已经生成了.实际上这个函数是没有意义的(如果它的功能如它的名字所提示的).