比如现在有一个MAINMENU子菜单N1,一个PANEL1,一个窗口FORM2。
当点击N1时,如何使FORM2显示在PANEL1上面,即FORM2的容器是PANEL1,
并且无论点击多少次N1,PANEL1上只显示一个FORM2,不会显示多个FOMR2。
请帮帮忙,代码应该怎样写?小弟将重重有谢!!!!

解决方案 »

  1.   

    if (FindComponent('form2') as TForm)=nil then
    begin
    form2 := Tform2.create(self);
    form2.Name := 'form2'; 
    form2.parent :=panel1;
    form2.show;
    end;
      

  2.   

    if (FindComponent('form2') as TForm)=nil then
    begin
    form2 := Tform2.create(self);
    form2.Name := 'form2'; 
    form2.parent :=panel1;
    form2.show;
    end;
      

  3.   

    if assigned(Form2) then showmessage('Form2已经创建了')
    else ......
      

  4.   

    //++++++++++++++++++++++++++++++++++++++++++++
    //   创建一个容纳于某控件的Form,只创建一次
    //++++++++++++++++++++++++++++++++++++++++++++procedure TMainForm.CreateDockedForm(AOwner: TWinControl; var AForm: TForm;
      FormClass: TFormClass);
    begin
      if not Assigned(AForm) then
      begin
        AForm := FormClass.Create(AOwner);
        AForm.Parent := AOwner;
        AForm.BorderStyle := bsNone;
        AForm.Align := alClient;
        AForm.Show;
      end;
    end;
      

  5.   

    if assigned(Form2) then showmessage('Form2已经创建了')
    else ......这个方法是错的。
      

  6.   

    定义一个成员变量
    如 : FFrame : TFrame; 然后在事件中这样写if FFrame <> nil then
       FFrame.Free;
    FFrame := TFrame1.create(application);
    FFrame.align := alClient;
    fframe.parent := panel1;