子from的show事件:  windows.SetParent(FrmMessage.Handle,Panel1.Handle);
  FrmMessage.Parent :=  FrmMain.Panel1;
运行后 主from FrmMain的panel没有显示啊

解决方案 »

  1.   

    這些命令好像要放在FrmMain中吧。
      

  2.   

    建议不要写到FrmMessage.onShow
    写到FrmMain的某个事件:frmMessage:=TfrmMessage.Create;
                         frmMessage.parent:=frmMain.panel;
                         frmMessage.Show;
    如果没有出现再调整一下位子 frmMessage.left  frmMessage.Top之类(你现在代码没出现 有可能是这个原因)
      

  3.   

    soga  我试试啊  感谢
      

  4.   

    那个   frmMessage := TfrmMessage.Create;
      frmMessage.parent:=frmMain.panel1;
      frmMessage.Show;运行后 frmMessage := TfrmMessage.Create;报Not enough actual parameters这个啊,怎么弄
      

  5.   


    frmMessage := TfrmMessage.Create(frmMain);
      

  6.   

    Application.CreateForm(TFrmMessage, FrmMessage);恩 这样就可以了啊   还是要谢谢你们
      

  7.   

    和我预想的不一样啊,我是想把节目那个form放在他后面的panel,位置刚好不能移动的那种怎么办啊
      

  8.   

     frmMessage.ManualDock(pnl1);
     frmMessage.Show;
      

  9.   

    恩 有用啊,其实我也有办法,把被引用From的BorderStyle的属性改为BsNone也可以,你的方法专业点啊  呵呵
      

  10.   

    如果pnl1是大小可变的,这样就省事了,frmMessage对齐设置成alClient
    这样子窗体只能是非模态窗体,如果模态窗体,就坑了……
    而对于非模态窗体,就得注意释放问题了
      

  11.   

    看了一下不好意思 我没用代码写,是写错了 frmMessage := TfrmMessage.Create(nil);
    这里面是放一个对象就行  delphi有个原则是谁创建谁释放,如果你写frmMain那就是说frmMain释放时,frmMessage也会被释放,写nil这样就是用完了 得手动释放。Application.CreateForm(TFrmMessage, FrmMessage);这个当然是可以的,在dpr文件里面,自动创建窗体都是这样创建的