constructor TForm1.Create(AOwner: TComponent; OpType: Integer);
begin
  inherited Create(AOwner);
end;

解决方案 »

  1.   

    想直接在Create中加参数是不可能的。不过你可以定义一个属性,或者方法,传入这个参数就行了阿。—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  2.   

    分分可不可以收回来啊?我已经知道解决问题的办法了。我不应该用override,我应该用overload.我是参看了nicrosof的关于多态的文章才明白的。应该这么做:    constructor Create(AOwner:TComponent;optype:integer);overload;
        constructor TMyForm.Create(AOwner:TComponent;optype:integer);
        begin
             Self.Create(AOwner);//不过可能伴水兄的方法更规范罢
             OperType := optype;
        end;   lxpbuaa(桂枝香在故国晚秋) 兄,并不是不能直接加,如果我重载了就可以,这就是overload的本意阿,对于父类的方法如果子类里面需要不同的参数来实现,就可以使用overload.而且你也没有说清楚具体应该怎么做,所以分分给伴水兄了。:)
      

  3.   

    zswang(伴水)(* 嘻嘻 *) 的方法是可行的。但是这样就不叫重载了,重载的意思是不能改变申明,但是可以改变实现。—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  4.   

    nicrosoft说初学者经常混淆override和overload,Sigh!
      

  5.   

    实际上申明不同参数的同名函数的话,编译器自动处理为overload。
      

  6.   

    lxpbuaa(桂枝香在故国晚秋)兄,你再看看相关文档?你也把重载(overload)和覆盖(override)混淆了,呵呵。
      

  7.   

    这里有一个初学者经常混淆的概念。覆盖(override)和重载(overload)。上面说了,覆盖是指子类重新定义父类的虚函数的做法。而重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。其实,重载的概念并不属于“面向对象编程”, 重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer; 和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关! 
    --------摘自nicrosoft的浅谈多态——概念描述