各位前辈,小弟刚学delphi,在此拜喉一下前辈,希望各位前辈能扶一把。感谢    如有好心人可以收我为徒,弟子真是感激不尽。如有刚学delphi志同道合的兄弟,我们也可一起捉摸一下,小弟QQ:271978974
问题:在主窗口点击菜单弹出的子窗口,子窗口要怎么样才能在主窗口的里面
      跟word一样,我点击新增的文件使终在整个WORD窗口里面
     小弟附上我写的代码    ---------这个主窗口菜单点击代码-------------------
procedure Tmainform.N56Click(Sender: TObject);
begin
    application.CreateForm(tfuncform,funcform);
    funcform.show;
    n56.Enabled:=false;
end;
------------------------------------------------------

解决方案 »

  1.   

    funcform.BorderStyle := bsNone;
      

  2.   

    对不起,可能是我的描述没讲清楚,主窗口和子窗口的效果跟EXCEl一样,我新建一文档,标题栏合并到主窗口上,但子窗口任然有最小化,最大化,关闭按纽,且改变父窗口的大小,里面的子窗口会随之一起变化。
    谢谢
      

  3.   


    这位前辈,MDI 是什么意思,小弟初学,不懂,请不吝指教
      

  4.   

    这位前辈,MDI 是什么意思,小弟初学,不懂,请不吝指教
      

  5.   

    file->new->other->projects->mdi application
      

  6.   

    1.可以直接寫成MDI;
    2.要麼指定其子窗體的parent為主窗體;PS:
    MDI(Multiple Document Interface)是多文档界面的意思...
    MDI就象一个主界面,它一般带有菜单。里面又可以建立多个子窗口,就象WORD里面打开很多个文档,这些文档可以进行层叠、平铺等各种操作;子窗口可以在MDI 主窗口区域内定位、改变大小、最大化和最小化,当最大化子窗口时,它将占满MDI 主窗口的全部客户区。当MDI窗口最小化的时候所有子窗口随之最小化。
    一个程序的主界面一般都是MDI窗口。MDI介紹:   http://wenku.baidu.com/view/4e12954e852458fb770b56c3.html
      

  7.   

    //***************************************************************************//函 数 名: CreateForm//返 回 值: boolean//参       数: TForm//功       能: 判断MDI窗体的子窗体是否存在//***************************************************************************function TForm1.CreateForm(CForm:TForm):boolean;vari:integer;FormExist:boolean;beginFormExist:=false;if(CForm=Nil) then     //判断CFrom是否为空    begin     CreateForm:=false; //函数返回值赋false     exit;               //退出本函数    end;for i:=0 to Screen.FormCount-1 do                     //判断窗体是否已经建立起来    begin     if Screen.Forms[i].ClassType=CForm.ClassType then //判断窗体存在       FormExist:=true;    end;if FormExist=false then   begin     CreateForm:=false; //函数返回值赋false     exit;               //退出本函数    end;   if CForm.WindowState=wsMinimized then    ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体    else    ShowWindow(CForm.Handle,SW_SHOWNA);    //显示窗体if not CForm.Visible then    CForm.Visible:=true;CForm.BringToFront;                     //当前窗口显示在最前面CForm.SetFocus;CreateForm:=true;end;
      

  8.   


    我看了你给我的网址,虽然我没看懂,但我学了一点,我把主窗口的formstyle设置为fsmdiform
                                                把子窗口的formstyle设置为fsmdichild
    这样就达到了我要的效果,可问题又出来了,我一测试,默认所有的子窗口都打开了,如果我有十个子窗口,它们全部都会打开
      

  9.   

    打开你的项目,
    在项目的代码中,将子窗体删除begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1); 
      Application.CreateForm(TForm2, Form1); //from2为子窗体,将该句删除
      Application.Run;
    end.
      

  10.   

    var
        phandle:^Thandle;
    begin
        phandle:[email protected];
        phandle^:=clienthandle;
        with Tuserform.Create(application) do show;各位前辈,谁能帮我解释一下这段代码,
    我在测试的时候
      把主窗口的formstyle设置为fsmdiform
      把子窗口的formstyle设置为fsmdichild   这样就能达到MDI的效果我今天来就在mainform前加了一个loginform 窗口,就报错,然后我在打开子窗口那里加了以后代码后就行了,不知道为什么