改成这样试试!
form1 改成你的formMessageBoxEx(Form1.Handle,'保存线路数据时发现错误,请检查必要的字段是否填写!','错误',MB_OK + MB_ICONERROR,LANG_CHINESE);
Action:=daAbort;

解决方案 »

  1.   

    TDModulefrm
    是TDataModule类型吧。
    TDataModule没有Handle属性。
    应该使用Form.Handle
    或直接使用NIL
      

  2.   

    你用的应该是数据模块TDataModule控件吧,它是不可视控件,所以没有句柄Handle,你可以试试这个函数:
    Application.MessageBox('保存线路数据时发现错误,请检查必要的字段是否填写!','错误',0+ 16);
      

  3.   

    windindance(风舞轻扬):    这段代码只能写在数据模块中,但是也用nil则提示:
        [Error] Module.pas(842): Incompatible types: 'HWND'and 'Pointer'
        请问怎么解决?
      

  4.   

    你用的应该是数据模块TDataModule控件吧,它是不可视控件,所以没有句柄Handle,你可以试试这个函数:
    Application.MessageBox('保存线路数据时发现错误,请检查必要的字段是否填写!','错误',0+ 16);
      

  5.   

    真是老天不长眼,Application.MessageBox同样不幸。提示错误:
    [Error] Module.pas(842): Undeclared identifier: 'Appliaction'
      

  6.   

    要不你就不要把这个过程放到Form里面,要不你在DataModule里面Use Forms这个单元。因为TApplication在Forms里面定义的,再试试看
      

  7.   

    给数据模块Unit加入一个forms单元就行了,uses ....... ,forms;
      

  8.   

    谢谢各位大仙,小弟已经解决。如下:
    先在数据模块Unit加入一个forms单元;
    然后写下:
    procedure TDModulefrm.tbXlxxPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    begin
       MessageBoxEx(Application.Handle,'保存线路数据时发现错误,请检查必要的字段是否填写!',
                        '错误',MB_OK + MB_ICONERROR,LANG_CHINESE);
      Action:=daAbort;
    end;