做一个企业管理软件
原来采用了showModal形式,但是用户说不能最小化,不方便
现在欲改为mdi窗体,但是闪动得很厉害请问还有没有其它解决办法了呃?

解决方案 »

  1.   

    改为置顶窗体
    或者做过多页签的,用pagecontrol,把窗体贴在tabsheet上,不闪
      

  2.   

    我是用PageControl来代替MDI功能的
    MDI能不用尽量别用
      

  3.   

    处理得好的话,PageControl是比较好用的。而且用起来也很方便。
      

  4.   

    软件界面比较多,用pageControl的话貌似也不太合适~
      

  5.   

    1.MDI的优势:可以同时查看和对比多比数据.也可以使用多开应用的方法来替代。
    2.使用PageControl的TabSheet方式,这种方式表现也不错,可以方便的切换。
    3.showmodual,独立性强。关键看你的应用了。
    MDI,不会很闪啊!你的是怎么个闪情况?
      

  6.   

    我很奇怪,也很郁闷
    当执行下面这句的时候,
    Application.CreateForm(Tfrmquality_material_check_KeHu, frmquality_material_check_KeHu);
    frmquality_material_check_KeHu就显示出来了
    按理说应该show一下才能显示啊~~
      

  7.   

    相同相反的道理。。 你HIDE下MDI的窗體看是什麼情況就知道為什麼不用SHOW了
      

  8.   

    不明白MDI什么地方会闪了,我用了没见闪,下面有源代码http://www.ahjoe.com/source/CardsMDI.asp
      

  9.   

    打开MDI子窗体,并且最大化时是闪的很厉害。关注ing......
      

  10.   

    做过不少打破常规的应用界面,可以把主窗口做成小的功能面板(当然界面是要下一番工夫美化的),必要时加个托盘功能,可以显示\隐藏主功能面板,每打开一个功能窗口时调用SetWindowLong(Form.Handle,GWL_EXSTYLE,WS_EX_APPWINDOW);使得这个窗口在工具栏出现图标. 其实有很多客户并不想老是看你的占整个桌面的程序主窗口,因为他有时候也要做些其它的事情,给客户一个自由吧(适当的分析一下客户的使用心理).
    反正等等了.
    打破规则,充分发挥自己的想象吧.
      

  11.   

    MDI模式下不用设置子窗体的WindowState为wsMaximized,只要第一个子窗体是最大化的,其他所有新创建子窗体就自然会最大化,而且这样就不会闪了。也就是说,只需要把第一个主界面子窗体设置成wsMaximized,其他的就不用处理了。
      

  12.   

    如果模块比较多的话,用TabControl好了,动态加载Form到TabControl上
      

  13.   

    当然,我是用PageControl,一开始并不生成所有的页面,而是点哪个模块名就生成哪个Page,手动关闭,如果点了已经存在的模块名,就自动切换到相应页面。
      

  14.   

    估计不是窗体在闪,而是窗体中的控件在闪吧。
    比如DBGrid之类的和数据集连接的控件,你刷新数据的时候,如果对里面的标题什么的进行设置,肯能会闪的很厉害的。
      

  15.   

    delphi 2007 的DockTabSet非常好用!
      

  16.   

    试试FOXMAIL的界面如何
    !public
         procedure CreateParams(var Params: TCreateParams); override;
        { Public declarations }
      end;
     .....
    procedure TSupplierAndFittingManageForm.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
    end;