我做一个系统,需要登陆界面,我在界面上放了ADOConnection控件以后当窗体关闭就会报错,请跟我做一下实验:
新建一个项目,在窗体上放一个ADOConnection控件,一切按默认属性,然后将工程文件内
Application.CreateForm(TForm1, Form1);
用这两句话代替:
form1:=tform1.Create(form1);
form1.ShowModal;运行后你会发现,一退出程序就会引发异常。
这是怎么回事呢?

解决方案 »

  1.   

    和Adoconnection没有关系,你乱改代码改出来的
    Application.CreateForm(TForm1, Form1);
    必须要有,不然的话你的application怎么知道哪个是主窗口???
      

  2.   

    老大,你要是想做一个登陆窗口,可以这么写啊
    -------------------------------------
    var StartForm:TForm1;
    begin
      StartForm:=TForm1.Create(nil);
      StartForm.Show;
      StartForm.Update;
      Application.Initialize;
      Application.Title := '接入网设备监控程序';
      Application.CreateForm(TfrmMain, frmMain);
      Application.CreateForm(TfrmAddAP, frmAddAP);
      Application.CreateForm(TFrmCommSet, FrmCommSet);
      StartForm.Close;
      Application.Run;
    end.
      

  3.   

    错了
    ---------
    在mainform的onShow里面写
    form1:=tform1.Create(form1);
    form1.ShowModal;
    就可以了
    -----------
    不过真的挺奇怪的,为什么按钮什么的就没有内存读取的错误
    换成adoconnection就有问题了〉〉〉〉?
      

  4.   

    我的系统有主窗体,要登陆通过了才显示,所以不能用Application.CreateForm(TForm1, Form1);来显示登陆窗体
      

  5.   

    登陆通过在显示,那就把登陆窗口写到主窗口的onshow或者onCreate里面阿
    然后
    frmLogin:=TFormLogin.Create(self);//创建登陆窗口
            if frmLogin.ShowModal <> mrOK then//用户登录在这里实现,如果登陆成功返回mrOK
            begin
                    application.Terminate;   // 用户登录没有通过,就直接退出程序
            end;在frmLogin里面可以有数据库的操作,如果用户名密码正确则
    self.ModalResult:=mrOK
    这样应该就可以了
      

  6.   

    我以前用BDE连的时候不会出现这种情况,ado就不成了正如我的标题写的那样:我想知道这个异常是怎么出来的