unit DataModule;interfaceuses
  SysUtils, Classes, DB, ADODB;type
  TDataModuleForm = class(TDataModule)
    ADOConnection1: TADOConnection;
    ADOStoredProc1: TADOStoredProc;
    ADOStoredProc2: TADOStoredProc;
    ADOStoredProc3: TADOStoredProc;
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  DataModuleForm: TDataModuleForm;implementation{$R *.dfm}end.procedure TMake_Rnew_KardForm.FormCreate(Sender: TObject);
begin
       ////////////////////////////////////////////  使 edit(x) 的  Enabled:=      DataModuleForm.ADOStoredProc2.Close;end;
编译时,提示的错误如附件:project gamesys.exe raised exception class eaccessviolation with message '
access violation at address 00529e82 in module 'gamesys.exe',read of 
address 0000005c'
如果 去掉 DataModuleForm.ADOStoredProc2.Close; 则没有错误
请教各位大哥,我是错在那里呢?谢谢!

解决方案 »

  1.   

    ////////////////////////////////////////////  使 edit(x) 的  Enabled:=      DataModuleForm.ADOStoredProc2.Close;
    这是什么意思???
      

  2.   

    DataModuleForm.ADOStoredProc2.Close  把这几行代码写到 formshow  事件中
    因为在formcreate时  DataModuleForm还没有创建呢
      

  3.   

    DataModuleForm还没有创建成功 所以其中的 ADOStoredProc2当然不可访问
      

  4.   

    Enabled:=      DataModuleForm.ADOStoredProc2.Close; ??????????????????
    ???
    实在不懂啊?
      

  5.   

    谢谢各位大哥
    请教:
    是写成
    procedure TMainUnitForm.N8Click(Sender: TObject);begin
             Make_Rnew_KardForm:=TMake_Rnew_KardForm.Create(nil);
             try             Make_Rnew_KardForm.ShowModal;
                 DataModuleForm.ADOStoredProc2.Close;
             finally
                 Make_Rnew_KardForm.Free;
             end;
    end;
    还是写成:
    procedure TMainUnitForm.N8Click(Sender: TObject);begin
             Make_Rnew_KardForm:=TMake_Rnew_KardForm.Create(nil);
             try
                 DataModuleForm.ADOStoredProc2.Close;
                 Make_Rnew_KardForm.ShowModal;
                 
             finally
                 Make_Rnew_KardForm.Free;
             end;
    end;
    谢谢!
      

  6.   

    那你为什么要DataModuleForm.ADOStoredProc2.Close;呢
      

  7.   

    DataModuleForm 是个数据模块
    后面还有一些东西没有写出来DataModuleForm.ADOStoredProc2.Close;
    ...............................
    ..............................
    DataModuleForm.ADOStoredProc2.open;