怎么判断一个窗体是ShowModal窗体(100分)

  • 主题发起人 主题发起人 123456789051352
  • 开始时间 开始时间
1

123456789051352

Unregistered / Unconfirmed
GUEST, unregistred user!
请教个为侠客,师父:<br> &nbsp;怎么判断一个窗体是ShowModal窗体,<br> &nbsp;怎么判断一个窗体是Show窗体
 
定义一个全局变量, 再重载showmodal方法. &nbsp;在showmodal方法里面改变全局变量就OK了.<br> function showmodal:integer;override;
 
procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> &nbsp; if &nbsp;[fsModal]=Form1.FormState then<br> &nbsp; &nbsp; &nbsp; ShowMessage('Form1 是一个Model窗体!');<br><br>详细参考vcl的showmodal的定义。看看showmodal究竟做了什么你就知道了。<br> &nbsp; &nbsp;TFormState = set of (fsCreating, fsVisible, fsShowing, fsModal,<br> &nbsp; &nbsp;fsCreatedMDIChild, fsActivated);
 
樓上的方法好,就是這樣
 
同意楼上上的
 
好像不可以,下面的过程一个也没有执行<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> &nbsp; if &nbsp;[fsModal]=Form1.FormState then<br> &nbsp; &nbsp; &nbsp; ShowMessage('Form1 是一个Model窗体!');<br> &nbsp; if &nbsp;[fsVisible]=Form1.FormState then<br> &nbsp; &nbsp; &nbsp; ShowMessage('Form1 是一个可见窗体!');<br> &nbsp; if Form1.FormState = [fsVisible] then<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ShowMessage('Form1 是一个可见窗体!');<br>end;
 
当然不要放在按钮里面,这里例子,是通过按钮点击测试的。<br><br> &nbsp; 你要自动显示,当然需要在form1.onshow或者onactive,oncreate添加到这里才可以。
 
既然是查询当然要放在按钮里面。想查就查。否则没有意义
 
procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> &nbsp; if &nbsp;fsModal in Form1.FormState then<br> &nbsp; &nbsp; &nbsp; ShowMessage('Form1 是一个Model窗体!');<br> &nbsp; if &nbsp;fsVisible in Form1.FormState then<br> &nbsp; &nbsp; &nbsp; ShowMessage('Form1 是一个可见窗体!');<br>end;
 
多人接受答案了。
 
后退
顶部