procedure TForm1.FormCreate(Sender: TObject);
begin
  with DM.ADOQuery1 do
    begin
      close;
      SQL.clear;
      sql.Add('select * from times');
      open;
      end;
      DataSource1.DataSet:=DM.ADOQuery1;
end;
运行时提示:access violation at address 00494c03 in module 'mainform.exe',read of address 0000005c.
错在哪了?我是新新新手,出门就碰头!

解决方案 »

  1.   

    open;
          end;
          DataSource1.DataSet:=DM.ADOQuery1;//这句应该在ADOQuery  open之前才可以吧.我没有测试.只是提自己的想法
      

  2.   

    DM是在什么時候創建的?
    要在Form1創建之前創建
      

  3.   

    我看你的代码是在Form的Create里面的,此时你的DM已经创建了吗?通常情况下,Form1是程序的主Form,在dpr里面,它是第一个被创建的,这时DM可能还没有被创建,所以去访问它就会非法了。
      

  4.   

    哦,你的DM是在Form1创建之前创建的吗?如果在form1.oncreate之前DM还没有创建,会出这个错的
      

  5.   

    在delphi內按ctrl+F12,然後點擊project
    begin
      Application.Initialize;
      Application.CreateForm(TDM,DM);//請在此創建DM
      Application.CreateForm(TFrom1, From1);
      Application.Run;
    end.