父窗体上有一个panel1,panel1里面有上下两个panel(就叫'上panel'和'下panel'吧)。点击上panel里面的控件,可以在下panel创建一个窗体。
问题:现在我想点击下panel窗体中的控件,然后创建另外一个窗体显示在整个panel1中(覆盖上下panel)。这个如何实现啊?真心求助。下面是下窗体中的创建窗体代码。说得可能有点绕,多多包含!
procedure TfrmTestChapter.imgBottomNavBtnTestClick(Sender: TObject);//这是下panel窗体上的某控件
var
  CurNum: Integer;
  fuFormMain:TFormMain;
begin
    if FfrmShowFlash = nil then  //这是要显示在panel1中的窗体
      FfrmShowFlash := TfrmShowFlash.Create(nil);
    with FfrmShowFlash do
    begin
      BorderWidth := 0;
      DockSite := True;
      DragKind := DkDock;
      Align := alClient;
      HostDockSite :=   ;//这里直接填父窗体上的panel1会说‘read of address xxxxx’!
      Show;
    end;
end;

解决方案 »

  1.   

    这个不难吧?上panel的相应事件创建Frame1放在下panel上,下panel相应事件创建Frame2放在Form上(将两上下panel隐藏)即可
      

  2.   

    首先创建一个TFoem和两个TFrameTForm1:private
      tf2: TFrame2;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      tf2 := TFrame2.Create(Self);
      tf2.Parent := Panel2;
    end;TFrame2:private
      tf3: TFrame3;
    procedure TFrame2.Button1Click(Sender: TObject);
    begin
      tf3 := TFrame3.Create(Self);
      tf3.Parent := Form1;
      Form1.Panel1.Visible := False;
      Form1.Panel2.Visible := False; //引用Torm单元时放在implementation下面
    end;
      

  3.   

    写错了,是TForm,不是TFoem......panel有一个btn,panle2也有个btn,哦了
      

  4.   

    显示在panel1中,是不能覆盖panel2的; 何况覆盖了,岂不是看不到其它的控件了
      

  5.   

    其实是Align := alClient的问题,谢谢各位的解答!