我在unit3中的interface中声明:
procedure q_dresclick(sender:Tobject);
在另一个文件中引用如下:
drescheckbox[i,j].OnClick:=unit3.q_dresclick;
编译时却出现如下错误:
[Error] Unit2.pas(44): Incompatible types: 'method pointer and regular procedure'
请问该如何修改,为什么?

解决方案 »

  1.   

    drescheckbox[i,j].OnClick:=unit3.q_dres.OnClick;
      

  2.   

    sorry  應 在Unit2中的
    implementation
    uses Unit3;           //加入這一句
    {$R *.DFM}然後再
    drescheckbox[i,j].OnClick:=q_dres.OnClick;
      

  3.   

    你得在drescheckbox[i,j].OnClick:=unit3.q_dres.OnClick;
    事件的单元引用unit3!
    有问题请发信息到我的E-mail:[email protected]
      

  4.   

    我定义的是q_dresclick过程,并非q_dres.onclick;
    而且我在implementation中加入了uses Unit3;  
    还有一点我要说明,我的引用文件、unit3是单纯的pascal文件,而不是有窗体的文件
      

  5.   

    你的问题是类型匹配错误
      我不知道你这句什们意思drescheckbox[i,j].OnClick:=unit3.q_dresclick;
    不过在另外一个窗体中引用q_dresclick这个过程只要uses Unit3;然后直接调用q_dresclick就OK了
      

  6.   

    drescheckbox[i,j]是一个tcheckbox按钮 q_dresclick是一个单击事件处理过程