我的主窗体中有个Tpagecontrol控件,当我按主窗体中的某个按钮后,我将新建一个新的定义好的窗体B,并将B显示在PageControl1.pages[0]上,我先做了一个试验,试验是非常成功的,可以正常显示出窗体B来,可是不知为什么,当我在实际的程序中进行编程时,却怎么也不正常了,程序报告说“Cannot focus disable or invisible window”,请问兄弟们为啥会出现这个错误呢,要知道,同样的一段代码在另一个地方好使,为啥到了这里就不行了呢?我的代码为:
var b:Tbform;
begin
   b:=TBForm.create(applicaiton);
   b.parent:=pagecontrol1.pages[0];
   b.align:=alclient;
   b.show;
end;
   上面就是我的代码片断,请问各位大侠,为啥会出现上述错误,要知道这断代码在我做试验时可是运行正常的呀。。

解决方案 »

  1.   

    为什么一定要用窗体呢?用Frame不是更好吗?
      

  2.   

    frame倒是方便,可是用frame如果我在另外的计算机进行编程时,还需要进行安装进控件面板,有点麻烦呀
      

  3.   

    不用安装,那是Delphi自带的。
      

  4.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      BForm:TForm;
    begin
       BForm:=TForm.create(self);
       BForm.parent:=pagecontrol1.pages[0];
       BForm.align:=alclient;
       BForm.show;
    end;
      

  5.   

    把要create的form的visible属性设为false
      

  6.   

    谢谢各位的回复,但还是没有解决问题,我在另外的地方试验一段代码,不论create参数设为Application还是Self,都没问题的呀
      

  7.   

    我说的“把要create的form的visible属性设为false”是在设计阶段,你有没有试过啊,我记得以前我也遇到过类似的问题,后来设了false后就没事了