Chinaunix首页 | 论坛 | 博客
  • 博客访问: 230409
  • 博文数量: 73
  • 博客积分: 3005
  • 博客等级: 中校
  • 技术积分: 857
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-24 10:11
文章分类

全部博文(73)

文章存档

2014年(2)

2011年(5)

2010年(29)

2009年(32)

2008年(5)

我的朋友

分类:

2009-03-05 16:24:58

ShowModal与Show的区别

在用delphi开发时,碰到这样的问题:fomr2.ShowModal出现cannot   make   a   visible   window   modal错误,但fomr2.Show则正常,为什么?
因为ShowModal与Show是不同的。
  fomr2.ShowModal时,要求Form2.Visiable=False,假使你设置为Visiable=True就会产生错误:  
ShowModal函数定义:
  function   TCustomForm.ShowModal:   Integer;  
var  
  WindowList:   Pointer;  
      SaveFocusCount:   Integer;  
      SaveCursor:   TCursor;  
      SaveCount:   Integer;  
      ActiveWindow:   HWnd;  
  begin  
      CancelDrag;  
      if   Visible       //Form.visible=True.  
            or   not   Enabled   or   (fsModal   in   FFormState)   or  
          (FormStyle   =   fsMDIChild)   then  
          raise   EInvalidOperation.Create(SCannotShowModal);   //产生一个raise,出错误。  
      其中 SCannotShowModal   =   'Cannot   make   a   visible   window   modal';      
  ...  
  end  
   
  fomr2.Show时,要求Form2.Visiable=True或False都不会错。  
 
Show函数定义:  
  procedure   TCustomForm.Show;
  begin  
      Visible   :=   True;  
      BringToFront; 
  end;
阅读(2078) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-07-28 04:21:27

谢谢了,