应该都可行的
问一句愚蠢的话,是否执行到了exit一句??

解决方案 »

  1.   

    有的事件可能不会执行,如beforepost,要首先使用abort,再执行exit才行
      

  2.   

    我在工具栏的按钮的事件中写的:procedure TForm1MainMenu.EnterQryExecute(Sender: TObject);
    var
      F_Form3EnterQry: TForm3EnterQry;
    begin
      if not RightsArray[2] then
        exit; //报错:statement expected, but expression of type 'TAction' found.
      try
        F_Form3EnterQry := TForm3EnterQry.Create(self);
        F_Form3EnterQry.ShowModal;
      finally
        F_Form3EnterQry.Free;
        F_Form3EnterQry := nil;
      end;  if ADOQuery1_ServiceForm.RecordCount = 0 then
        MessageDlg(#13+'找不到相应条件的记录!', mtInformation, [mbOK], 0);
    end;
      

  3.   

    RightsArray[2] 是一个数组变量吧 ,not 后面应该跟表达式 , 
    你确定RightsArray[2]返回Boolean值了么?
    根本不是Exit的问题 .
      

  4.   

    RightsArray: array of boolean
      

  5.   

    你的form类型可能是MDIForm,建议你把Exit写成System.Exit。