我想用方法重载,在声明时写下以下语句:
1、Procedure KeyPressControl(vclobj:TKsCustomEdit;vkey:word;vShift:TShiftState); overload;2、Procedure KeyPressControl(vclobj:TCustomEdit;vkey:word;vShift:TShiftState); overload;
是不是方法重载只能对函数进行?过程不行吗?为什么老是执行不了,错在哪?报错信息:Unsatisfied forward or external declaration: 'KeyPressControl'
请高手帮助解答!最好能详细说明方法重载!

解决方案 »

  1.   

    不满足的向前或外部说明<Procedurename>
      

  2.   

    KeyPressControl 是什么控件的方法?
    你看不重载这样行不?
    申明一个自己的过程
    procedure MyKeyPressControl(vclobj:TKsCustomEdit;vkey:word;vShift:TShiftState);.....
      xxx.KeyPressControl:=MyKeyPressControl;
    .....procedure xxx.MyKeyPressControl (vclobj:TKsCustomEdit;vkey:word;vShift:TShiftState);
    begin
      //你的处理
    end;
      

  3.   

    过程可以重载,但参数要一致:
    1、Procedure KeyPressControl(;vkey:word;vShift:TShiftState); overload;2、Procedure KeyPressControl(;vkey:word;vShift:TShiftState); overload;
    会不会是你的下面两个参数不一致造成的vclobj:TKsCustomEdit和vclobj:TCustomEdit
      

  4.   

    同意 gzyzljk(正龙剑客)
      

  5.   

    to: fyje(冬原)  是参数必须不一致~ 
    帮助中是这么写的 :must have distinguishing parameter lists :-)
      

  6.   

    首先可以确定overload可以申明任何函数,过程,方法
    1.在一个方法中申明使用Overload他必须出现在Virtual,dynamic,abstract  
    之前
    2.编译器使用类型和实际参数的个数来确定调用哪个重载的例程。如果编译器
    无法确定调用哪个重载例程,就产生一个错误
      

  7.   

    TksCustomEdit是不是继承TCustomEdit来的?
      

  8.   

    http://expert.csdn.net/Expert/topic/1377/1377184.xml?temp=.2568781
    帮忙解决一下,谢谢