本来是点击按钮就连接数据库
代码如下:
procedure TXmlF.btnDownClick(Sender: TObject);
begin
...
dmMain.adoMain.Connected:= False;
  dmMain.adoMain.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
                              +ExtractFilePath(ParamStr(0))+'db\shshipbill.mdb;Persist Security Info=False;'
                              +'Jet OLEDB:Database Password=shshipbill&20040818';
...
end;我现在想改成窗口打开就连接数据库
改写成:
procedure TXmlF.FormCreate(Sender: TObject);
begin
dmMain.adoMain.Connected:= False;
  dmMain.adoMain.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
                              +ExtractFilePath(ParamStr(0))+'db\shshipbill.mdb;Persist Security Info=False;'
                              +'Jet OLEDB:Database Password=shshipbill&20040818';
end;可是不成功,还报错Access violation at address 0050CA16 in module 'DataUpdate.exe'
DataUpdate.exe是代码编译后的文件
请问高手问题出在哪里,或者要实现我的目的应该怎么做?

解决方案 »

  1.   

    写在FormShow事件里应该就可以了
      

  2.   

    应该是FormCreate的时候,
    你用到的变量还没有初始化,
    就是说没有分配内存,所以
    不可访问。
      

  3.   

    不报那样的错了,但是好像也没有执行formshow里面的语句阿
    在formshow里面写的memo1.lines.add('aaa')就没有效.
      

  4.   

    Add a breakpoint to debug
      

  5.   

    搞不定,着急!
    刚用delphi,很急的东西,来不及去系统的学习了
    能不能请高手直接给我提示一下该如何去做啊
      

  6.   

    写是 form 的onshow 事件里面就ok
      

  7.   

    faint
    //----------------------------------------------
    改法跟原因我都說了,
    你那不行估計是沒有彻底编译吧,
    彻底编译一下,在formshow中设个
    断点跟一下看看
      

  8.   

    在Object TreeView中选中XmlF在Object Inspector中选择Events页签,找到OnShow,双击后面的空格这个时候程序里面就多了下面的内容
    procedure TXmlF.FormShow(Sender: TObject);
    beginend;
    把前面写的以下代码从FormCreate中剪切到FormShow中来
    dmMain.adoMain.Connected:= False;
      dmMain.adoMain.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
                                  +ExtractFilePath(ParamStr(0))+'db\shshipbill.mdb;Persist Security Info=False;'
                                  +'Jet OLEDB:Database Password=shshipbill&20040818';
      

  9.   

    把本来在OnClick中的代码复制到Form的OnCreate中
      

  10.   

    现在弄明白啦
    就是我调试的时候调到一半就停下来,让我找WinSkinStore.pas这个文件