unit pas_datam;interfaceuses
  SysUtils, Classes, DB, ADODB;type
  Tfrm_datam = class(TDataModule)
    ADOConnection1: TADOConnection;
    DSetUser: TADODataSet;
    DSUser: TDataSource;
    DSetUserIncPost: TADODataSet;
    DSUserIncPost: TDataSource;
    DSetUserExPost: TADODataSet;
    DSetUserIncPur: TADODataSet;
    DSUserExPost: TDataSource;
    DSUserIncPur: TDataSource;
    DSetPost: TADODataSet;
    DSetPostIncGroup: TADODataSet;
    DSetPostExGroup: TADODataSet;
    DSetPostIncPur: TADODataSet;
    DSPost: TDataSource;
    DSPostIncGroup: TDataSource;
    DSPostExGroup: TDataSource;
    DSPostIncPur: TDataSource;
    DSetGroup: TADODataSet;
    DSetGroupIncPur: TADODataSet;
    DSetGroupExPur: TADODataSet;
    DSGroup: TDataSource;
    DSGroupIncPur: TDataSource;
    DSGroupExPur: TDataSource;
    ADOQuery1: TADOQuery;
    procedure DSetGroupPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure DSGroupDataChange(Sender: TObject; Field: TField);
    procedure DSPostDataChange(Sender: TObject; Field: TField);
    procedure DSUserDataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  frm_datam: Tfrm_datam;implementationuses PublicModel, pas_pm;{$R *.dfm}procedure Tfrm_datam.DSetGroupPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
  showErrMsg('post error:' + E.Message );
end;procedure Tfrm_datam.DSGroupDataChange(Sender: TObject; Field: TField);
begin
  if not frm_datam.DSetGroup.IsEmpty  then
  begin
    //显示权限组包含的权限
   Frm_pm.ShowGroupIncPur;
    //显示权限组不包含的权限
   Frm_pm.ShowGroupExPur ;
  end;
end;procedure Tfrm_datam.DSPostDataChange(Sender: TObject; Field: TField);
begin
  if not frm_datam.DSetPost.IsEmpty then
  begin
    Frm_pm.ShowPostIncGroup ;
    Frm_pm.ShowPostExGroup  ;
    Frm_pm.ShowPostIncPur   ;
  end;
end;procedure Tfrm_datam.DSUserDataChange(Sender: TObject; Field: TField);
begin
  if not frm_datam.DSetUser.IsEmpty then
  begin
    Frm_pm.ShowUserIncPost ;
    Frm_pm.ShowUserExPost ;
    Frm_pm.ShowUserIncPur ;
  end;
end;end.
总是提示以下错误
(88): procedure TFrm_pm.GroupAddPur;
(101):     AddPur(PurStr, FRM_DATAM.DSetGroupExPur.FieldByName('gn_i').AsInteger);
(144): GroupAddPur;
[Error] pas_datam.pas(76): Undeclared identifier: 'ShowPostExGroup'
[Error] pas_datam.pas(85): Undeclared identifier: 'ShowUserIncPost'
[Error] pas_datam.pas(86): Undeclared identifier: 'ShowUserExPost'
[Fatal Error] pas_pm.pas(96): Could not compile used unit 'pas_datam.pas'本应我在FRM_DATAM中引用了pas_pm,输入PAS_PM,再输入小数点. 就应用各种各样的提示控件选择,但是现在没有,应是引用没有成功,但我明明在USES中引用PAS_PM,真的不知道是什么原因造成的

解决方案 »

  1.   

    ShowPostExGroup 在那里定义的 需要uses所在单元
      

  2.   

    [Error] pas_datam.pas(76): Undeclared identifier: 'ShowPostExGroup'
    [Error] pas_datam.pas(85): Undeclared identifier: 'ShowUserIncPost'
    [Error] pas_datam.pas(86): Undeclared identifier: 'ShowUserExPost'看提示 'pas_datam.pas'里没有通过编译.估计是 pas_datam 没有定义'ShowUserExPost' ... 或者 pas_datam 没有引用这些方法的Unit
      

  3.   

    ShowPostExGroup是在pas_pm定义的一个函数,前面的代码大家也可以看到,我明明引用了它了,就是显示这样的错误,真是想不通