我做了个软件,问题如下:
    我建了两个窗体:form1(auto—create forms)和form2(available forms),form1中只有一个button1按扭,它的单击代码如下:
        procedure TForm1.Button1Click(Sender: TObject);
            begin
                 form2:=tform2.Create(application);
                 form2.ShowModal;
            end;
form2中有一个控件:adotable,form2中只有一个tform2.create事件。
其代码如下:
procedure TForm2.FormCreate(Sender: TObject);
var
str1,str2,str3:string;
begin
           str1:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
           str2:=ExtractFilePath(Application.ExeName)+'急性              毒.mdb;Persist Security Info=False';
           str3:=str2+str1;
           adotable1.ConnectionString:=str3;
           adotable1.TableName:='chuandi';
           adotable1.Active:=true;
end;
然后运行该程序,重复操作(单击form1中的button,关闭form2,)重复操作70多次后,出项错误,提示为“不支持此接口!”,它为什么会在重复操作了70多次后才出现那?请大哥大姐们帮帮忙。这问题太怪了!

解决方案 »

  1.   

    form2.ShowModal;
    以后你还可以点form1上的button来关闭form2吗??你真厉害!
      

  2.   

    你把form2:=tform2.Create(application);中的Application换成self试试,重复操作(单击form1中的button,关闭form2,)是笔误吧?
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
                begin
                     form2:=tform2.Create(application);
                     form2.ShowModal;
                     form2.free;
                end;
      

  4.   

    释放一下
    procedure TForm1.Button1Click(Sender: TObject);
                begin
                     form2:=tform2.Create(application);
                     form2.ShowModal;
                     freeandnil(form2);   
                end;
      

  5.   

    to 楼主: form2.showmodal的意思可以看help:use ShowModal to show a form as a modal form.  A modal form is one where the application can抰 continue to run until the form is closed. 所以你没必要用他,你直接用form2.show不就可以了么?效果与你想要的一点差别都没有~