我定义两个窗体:form1和form2;其中form1中有panel窗体一个和button,并且form1.formstyle:=fsmdiform;form2是其子窗体即为form2.formstyle:=fsmdichild;
目的:点击button时候,form2作为form1的子窗体出现在form1的panel区域中。自己试写代码如下:
if form1.MDIChildCount=0 then
  begin
  form2:=tform2.Create(self);
  form2.Parent:=panel1;
  Form2.Show ;
 end;
但是不能显示在panel1中,请支援!
分不是问题!

解决方案 »

  1.   

    跟一下看BEGIN和end之间执行了吗,我觉得代码没有问题呀
    if form1.MDIChildCount=0 then
      begin
      form2:=tform2.Create(self);
      form2.Parent:=panel1;
      Form2.Show ;
     end;
    试验一下
    if form1.MDIChildCount=0 then
      begin
      form2:=tform2.Create(self);
      form2.Parent:=panel1;
      Form2.visible:=true;
     end;
      

  2.   

    SetParent(self.handle, parent.handle);
      

  3.   

    m_leaner(追鑫) :方法不能通过!不行!
     langer1(长江后浪推前浪--前浪死在沙滩上):我早用过了!也是一样的效果!你只是换成API了!
      

  4.   

    mdi的默认的空白区是子窗体的显示区.所以你的想法不能在MDI中实现.
    如果form2为普通窗体才可以:
     form2.Dock(panel1,panel1.ClientRect);
     form2.show;
      

  5.   

    MDI的子窗口只能在MDI窗口中显示,如果要把Form2显示在Panel1上的话,把
    Form2.formstyle:=fsNormal即可,同时在Form2.Show的之前加入form2.Align := alClient;即能实现你的功能。