Welcome to ErranLi's Blog!

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

常用链接

留言簿(12)

搜索

  •  

积分与排名

  • 积分 - 172852
  • 排名 - 150

最新评论

阅读排行榜

在delphi中隐藏MDI子窗口有两种方法:

1)发消息及调用ShowWindow函数:
      showwindow(childform.handle, sw_hide);  // 隐藏子窗口
      showwindow(childform.handle, sw_restore);   // 显示子窗口

缺点:使用windows api直接隐藏子窗口,其子窗口的visible属性和其显示状态是不一至的。当子窗口不可见时,其visible属性可能仍然是true。


2)重载子窗口的visiblechanging方法:
      private
      procedure visiblechanging; override;//重载    
      
      procedure tchildform.visiblechanging;
      begin
          <使用组件属性隐藏子窗口时,需要重载此过程,并且不执行任何继承代码,否则将报错>
          //inherited; 不能执行此语句!
      end;
      此后就可以直接设置visible属性了:
      childform.visible:=false;//隐藏子窗口
  childform.visible:=true; //显示子窗口

缺点:当子窗口隐藏了后,有些控件的数据没有办法取到,如 TListView,  为这个问题曾经郁闷了很久,不知道是什么原因。例如:子窗口上listview已经有了10行数据,当利用方法2)把使得子窗口不可见了后,调用childform.listview.items.count结果总是0,但是显示此子窗口后10行数据还是在此listview中。

所以使用1),在程序中不要调用visible属性。
使用2),在子窗口隐藏了后不要去取该子窗口的数据。
       
      

posted on 2006-12-07 20:13 erran 阅读(2226) 评论(4)  编辑 收藏 引用 所属分类: Delphi

Feedback

# 江湖救急,帮帮忙吧 2007-05-23 21:37 LUOBO
我在赶毕业设计,我想把两个程序和在一起作为我的毕业设计,现在我要把一个用MID做的程序放到一个普通的程序中,我除了该怎样改代码?谢谢啦!等着交,不会改,愁啊!  回复  更多评论
  

# 江湖救急,帮帮忙吧 2007-05-23 21:38 LUOBO
不好意思,打错了,应该是delphi的MDI文件,谢谢啦  回复  更多评论
  

# re: Delphi : 隐藏MDI子窗口带来的问题 2007-05-26 11:09 erran
delphi的程序其实都不是很难 但容易臃肿 这种修改不是很难 在网上查查 去下图书馆 相信你要不了多久就可以搞定的 只这样说 我只能给你这样的见解了 其实两个系统的合并关键在系统逻辑...........  回复  更多评论
  

# re: Delphi : 隐藏MDI子窗口带来的问题 2008-07-12 15:32
方面不错 Q:258248014 有时间交流  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理