本来想愉懒,想直接用CXGRID中的DEL功能,但是又关系到权限问题,想在Onkeydown中判断是否有删除权限后再执行删除,发现无法exit Onkeydown事件.请教各位大哥了.

解决方案 »

  1.   

    在数据集的OnBeforeDelete事件中判断
      

  2.   

    同上,在數據集adoqueery的beforedelete事件中加以判斷代碼處理
      

  3.   

    sdostoredproc应该是beforedelete吗?
        if Form1.sc='0' then
           begin
             MessageBox(Handle,'您没有权限删除此记录,请联系管理.','错误',MB_ICONSTOP);
             exit;
           end;
    这样还是被删除了.
      

  4.   


    在OnBeforeDelete事件中應這樣寫:
    if Form1.sc='sc' then
    begin
      raise Exception.Create('您没有权限删除此记录,请联系管理.');
      Abort;
    end;
      

  5.   

    上面寫錯了,不是if Form1.sc='sc' then......,改成if Form1.sc='0' then......
      

  6.   

    TO:Oraclres
       很感谢你的帮助,按您的做法,在编译时总是报错:'project se.exe raised exception class exception with message '您没有权限删除此记录,请联系管理员.'.process stopped.use sttp or run to continue.'.而且无法结果程序.但是编译过的EXE运行时又一切正常.
      

  7.   

    结贴给分了,问题在:raise Exception.Create('您没有权限删除此记录,请联系管理.');
    换成messagebox(),就好.谢谢了.
      

  8.   

    這個是正常的,在IDE環境下是這樣,但編譯好後在正常環境運行時就只會彈出“您没有权限删除此记录,请联系管理”這句。原理就是當用戶無權操作時,引發一個異常,這種做發很平常,在IDE環境下時這個錯誤可忽略。
    另外在刪除操作中最好要加 try except end語句,以便處理異常。