是SDI的比如我有主窗体FrmMain
我想在FrmMain显示出来的时候同时显示出Frm2我试了,直接在FrmMain.create中Frm2.show不行,在FrmMain.Show中也一样PS: 
其实我是想把Frm2里面的一个控件T**在主窗体显示出来的时候,
将T**的Parent设置为主窗体的某个Tpanel
即Frm2的T**控件与主窗体同时显示出来我试了都不行,好像没等主窗体创建完,而在其中就Show其他东西会出错谢谢

解决方案 »

  1.   

    form1(主窗体)的代码:
    implementation
    uses unit2;
    {$R *.dfm}
    procedure TForm1.FormShow(Sender: TObject);
    begin
    form2.ShowModal;
    end;
    form2的代码:
    implementationuses Unit1;{$R *.dfm}procedure TForm2.FormCreate(Sender: TObject);
    begin
    button1.Parent :=form1;
    end;procedure TForm2.Button1Click(Sender: TObject);
    begin
    showmessage('sdf');
    end;
      

  2.   

    那就在主窗体的OnShow中写代码,最好是ShowModal
      

  3.   

    在主窗口SHOWMODAL时再创建并显示没有问题,但是如果再CREATE的时候创建会有问题
      

  4.   

    我不是要ShowModal啊我其实是想不显示出Frm2的情况下,将其某个控件的Parent设置为FrmMain的,可是就是不行
      

  5.   

    其实我是想把Frm2里面的一个控件T**在主窗体显示出来的时候,
    将T**的Parent设置为主窗体的某个Tpanel
    即Frm2的T**控件与主窗体同时显示出来
    奇怪的想法,只显示某个form的部分控件,难道可以这么做吗?一般这样的要求都是通过TFrame来实现的,而不是通过TForm。
    你先在工程中创建一个frame(菜单file|new|frame),然后在控件页standard中选择Frames,然后鼠标单击到主Form的panel上,就可以把你刚才创建的frame加载到该panel上了
      

  6.   

    你先在工程中创建一个frame(菜单file|new|frame),然后在控件页standard中选择Frames,然后鼠标单击到主Form的panel上,就可以把你刚才创建的frame加载到该panel上了==我也不是这个意思,这么说吧,我是想把子窗体的某个Panel拼接到主窗体上,但有些时候子窗体也可以单独做为窗体显示出来其实关键就是主窗体显示的时候要同时将子窗体的Panel拼接到主窗体的某个Panel上?
      

  7.   

    “我是想把子窗体的某个Panel拼接到主窗体上”我测试了一下,这个要求做不到。
      

  8.   

    “我是想把子窗体的某个Panel拼接到主窗体上”我测试了一下,这个要求做不到。==不会吧,那怎么办呢?我都想了,用一个Timer在Create里Enable=true,时间设了100也还不行
    还想了用自定义消息,再PostMessage让它拼接,以为这样不会马上处理,结果它呢,干脆就没处理,用Sendmessage吧,那就跟原来那样出错了我想应该总有办法吧。。我还没想到 唉
      

  9.   

    及时这样form2.panel1.parent:=form1.panel1做了,还是不能在form1的panel1中显示form2.panel1的内容,你可以用一个简单的例子来验证