5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

一个EXE文件中,两个窗体,能否主窗体的最小化不影响另外一个?

楼主apaqi(apaqi)2005-01-26 16:24:16 在 Delphi / Windows SDK/API 提问

比如,Form1是主窗口,里面有一个Timer,十秒后会自动显示Form2  
   
  这个时候发现,如果Form1最小化了,Form2就显示不出来,  
   
  那么,一个EXE文件中,两个窗体,能否主窗体的最小化不影响另外一个? 问题点数:100、回复次数:12Top

1 楼web700(*FS*的小狗腿子)回复于 2005-01-26 16:36:58 得分 5

不太好实现吧Top

2 楼apaqi(apaqi)回复于 2005-01-26 16:39:45 得分 0

像MSN的提示信息,就跟主窗口的最小化状态无关,只要有即时消息,就会出现。Top

3 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-01-26 16:40:00 得分 10

主窗体最小化说明暂时不用它了啊,那直接hide,就让它显示form2,如果需要form1时再show出来不行嘛???Top

4 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-01-26 16:43:21 得分 30

procedure   TForm1.Timer1Timer(Sender:   TObject);  
  begin  
      self.WindowState:=   wsMinimized;  
      form2.show;  
  end;  
   
  应该没问题啊,只不过form1不能最小化到任务栏了。  
  Top

5 楼jinjazz(近身剪)回复于 2005-01-26 16:45:25 得分 20

form2.Show;  
      form2.WindowState:=WsNormal;Top

6 楼merkey2002(小样的)回复于 2005-01-26 17:18:43 得分 5

嗯,最小化到任務欄就   不會顯示出來  
  Top

7 楼apaqi(apaqi)回复于 2005-01-27 12:00:37 得分 0

谢谢xixuemao(吸血猫)   jinjazz(近身剪(N-P攻略))  
   
  不过,你们的方法都有问题哦,  
   
  吸血猫的方法,运行了之后,很明显Form1缩到了任务栏的上面,也就像你说的那样,不能最小化到任务栏了,  
   
   
  近身剪(N-P攻略)可能根本没有调试自己的代码,那样子,Form1最小化之后,Form2也被最小化了,根本没有窗口啦。  
  Top

8 楼apaqi(apaqi)回复于 2005-01-27 12:02:12 得分 0

此外,为什么不让Form1隐藏呢,因为隐藏之后的Form1依然占用系统资源,比如内存,而如果最小化之后,占用的系统资源会小很多的。Top

9 楼Tensionli()回复于 2005-01-27 15:50:29 得分 10

关注Top

10 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-01-27 16:19:05 得分 20

用sui的控件来做吧  
  它里面有个suiMSNPOPForm  
  直接就能实现如同MSN的效果Top

11 楼apaqi(apaqi)回复于 2005-01-27 16:19:59 得分 0

不好意思,自己找到方法解决了,经过测试,可行。  
   
  http://www.howtodothings.com/ViewArticle.aspx?id=32285b1e9b764692929ec4f1203d2f40  
   
   
  This   article   demonstrates   how   to   stop   all   forms   in   a   Delphi   app   from   minimizing   when   the   main   form   minimizes.  
   
  For   each   child   form   that   you   wish   to   remain   visible   do   this  
   
  type  
      TSomeForm   =   class(TForm)  
      protected  
          procedure   CreateParams(var   Params:   TCreateParams);   override;  
      end;  
   
  implementation  
   
  procedure   TSomeForm.CreateParams(var   Params   :   TCreateParams);  
  begin  
      inherited   CreateParams(Params);  
      Params.WndParent   :=   GetDesktopWindow;  
  end;Top

12 楼apaqi(apaqi)回复于 2005-01-27 16:28:21 得分 0

sui的控件要钱地,Top

相关问题

  • 主窗体为什么最小化
  • 非主窗体最小化的问题
  • 怎样在主窗体最小化时,其他窗体同时最小化?
  • 主窗体最小化时,由主窗体创建的窗体便不见了!
  • 怎样使一个子窗体在主窗体最小化后而不最小化?
  • 怎样使一个子窗体在主窗体最小化后而不最小化?(新的问题)
  • 关于非MDI的非主窗体的最小化问题
  • 如何判断主窗体的状态(例:是否最小化?)
  • 当主窗体最小化时,子窗体如何保持不动?
  • 窗体最小化问题

关键词

  • 最小化
  • 窗体
  • 主
  • 任务栏
  • createparams
  • form
  • timer
  • 显示
  • 方法
  • show

得分解答快速导航

  • 帖主:apaqi
  • web700
  • xixuemao
  • xixuemao
  • jinjazz
  • merkey2002
  • Tensionli
  • heluqing

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问