delphi界面设计问题 做一个企业管理软件原来采用了showModal形式,但是用户说不能最小化,不方便现在欲改为mdi窗体,但是闪动得很厉害请问还有没有其它解决办法了呃? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改为置顶窗体或者做过多页签的,用pagecontrol,把窗体贴在tabsheet上,不闪 我是用PageControl来代替MDI功能的MDI能不用尽量别用 处理得好的话,PageControl是比较好用的。而且用起来也很方便。 软件界面比较多,用pageControl的话貌似也不太合适~ 1.MDI的优势:可以同时查看和对比多比数据.也可以使用多开应用的方法来替代。2.使用PageControl的TabSheet方式,这种方式表现也不错,可以方便的切换。3.showmodual,独立性强。关键看你的应用了。MDI,不会很闪啊!你的是怎么个闪情况? 我很奇怪,也很郁闷当执行下面这句的时候,Application.CreateForm(Tfrmquality_material_check_KeHu, frmquality_material_check_KeHu);frmquality_material_check_KeHu就显示出来了按理说应该show一下才能显示啊~~ 相同相反的道理。。 你HIDE下MDI的窗體看是什麼情況就知道為什麼不用SHOW了 不明白MDI什么地方会闪了,我用了没见闪,下面有源代码http://www.ahjoe.com/source/CardsMDI.asp 打开MDI子窗体,并且最大化时是闪的很厉害。关注ing...... 做过不少打破常规的应用界面,可以把主窗口做成小的功能面板(当然界面是要下一番工夫美化的),必要时加个托盘功能,可以显示\隐藏主功能面板,每打开一个功能窗口时调用SetWindowLong(Form.Handle,GWL_EXSTYLE,WS_EX_APPWINDOW);使得这个窗口在工具栏出现图标. 其实有很多客户并不想老是看你的占整个桌面的程序主窗口,因为他有时候也要做些其它的事情,给客户一个自由吧(适当的分析一下客户的使用心理).反正等等了.打破规则,充分发挥自己的想象吧. MDI模式下不用设置子窗体的WindowState为wsMaximized,只要第一个子窗体是最大化的,其他所有新创建子窗体就自然会最大化,而且这样就不会闪了。也就是说,只需要把第一个主界面子窗体设置成wsMaximized,其他的就不用处理了。 如果模块比较多的话,用TabControl好了,动态加载Form到TabControl上 当然,我是用PageControl,一开始并不生成所有的页面,而是点哪个模块名就生成哪个Page,手动关闭,如果点了已经存在的模块名,就自动切换到相应页面。 估计不是窗体在闪,而是窗体中的控件在闪吧。比如DBGrid之类的和数据集连接的控件,你刷新数据的时候,如果对里面的标题什么的进行设置,肯能会闪的很厉害的。 delphi 2007 的DockTabSet非常好用! 试试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; AutoUpgrader组件自动更新问题??? 在DBGRIDEH中显示字段中的图形 保存时奇怪的问题 ************ 两个popupmenu之间的切换问题 **************** 关于三层开发的知识,尤其是应用服务层的资料,希望大家提供些 100分,求一个简单网络通信的例子 100分求解语音通信问题!解决后给分! 请问如何触发一个剪贴版事件啊??~急~ 目前有程序需要完善,寻南京delphi程序员 多台机器(全是 win98/delphi5)能做c/s开发么?如何做? DBGrid如何动态添加多行数组 重新学习Delphi请大家多多关照
或者做过多页签的,用pagecontrol,把窗体贴在tabsheet上,不闪
MDI能不用尽量别用
2.使用PageControl的TabSheet方式,这种方式表现也不错,可以方便的切换。
3.showmodual,独立性强。关键看你的应用了。
MDI,不会很闪啊!你的是怎么个闪情况?
当执行下面这句的时候,
Application.CreateForm(Tfrmquality_material_check_KeHu, frmquality_material_check_KeHu);
frmquality_material_check_KeHu就显示出来了
按理说应该show一下才能显示啊~~
反正等等了.
打破规则,充分发挥自己的想象吧.
比如DBGrid之类的和数据集连接的控件,你刷新数据的时候,如果对里面的标题什么的进行设置,肯能会闪的很厉害的。
!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;