关于Form 关闭(50分)

  • 主题发起人 主题发起人 Motar Liu
  • 开始时间 开始时间
M

Motar Liu

Unregistered / Unconfirmed
GUEST, unregistred user!
我在报表的From cretae事件中判断<br>&nbsp; &nbsp;如果 &nbsp;数据是空值 then<br>&nbsp; &nbsp; &nbsp;要关闭此From<br><br>但是我在语法上 用Self.Close;或是用Halt;均会出现错误。<br>如果直接用Application.Terminator;不会出现错误。<br>
 
应该用Application.Terminator<br>close是对已经创建的窗体操作<br>而此时create时间还没成功
 
使用<br>&nbsp; &nbsp; PostMessage(Self.Handle, WM_Close, 0, 0);<br>
 
procedure TForm1.FormShow(Sender: TObject);<br>begin<br>if true then<br>&nbsp;self.close;<br>end;<br>放到onShow中
 
不能在create中做,最好重载AfterConstruction:<br><br>procedure AfterConstruction;override;<br><br>procedure TForm1.AfterConstruction;<br>begin<br>&nbsp; &nbsp; inherited;<br>&nbsp; &nbsp; if 数据是空值 then Free;<br>end;<br>
 
呵呵,使用消息是最好的办法,不需要改变你原来程序的结构。<br>没有问题的,我用过<br>&nbsp; &nbsp; PostMessage(Self.Handle, WM_Close, 0, 0);<br>
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部