TDBNavigator的删除事件有一个英文的提示,我想换成我的提示,是直接修改在Delphi的安装目录下DBCtrls.pas文件中TDBNavigator的函数TDBNavigator.BtnClick修改,还是我派生一个类,在子类中重写BtnClick,我想如果是改写移到别的电脑上就不行了,但生成一个子类,我的生成又出现错误,
  我的窗体上现在有一个TDBNavigator
怎么生成,代码为好

解决方案 »

  1.   

    先将 DBNavigator1.ConfirmDelete设置为FALSE,然后实现如下事件:procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    begin
      case Button of
        nbDelete:
        begin
          ShowMessage('Here show your confirm dialog');
          if not {YourConfirmDeleteVariable} then
            Abort;
        end;
      end;
    end;
      

  2.   

    先将 DBNavigator1.ConfirmDelete设置为FALSE,然后实现如下事件:
      if AQJtda.Recordcount>0 then
        if Application.MessageBox('确实要删除该家庭的资料吗?','提示',mb_IconQuestion+mb_YesNo)=mrYes then
          DBNavigator1.BtnClick(nbDelete);
      

  3.   

    实现DBNavigator.BeforeActions事件就可以了:记得需要Abort.procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    begin
      case Button of
        nbDelete:
        ...
        nbFirst:
        ...
        nbPost:
        ...
        nbNext;
        ...
        nbLast:
        ...
        nbInsert:
        ...
      end;  
    end