关于窗体的问题
如何实现打开一个窗体时进行判断,如果满足条件则显示,不满足则关闭。
我这样写不行,请各位高手指正。
procedure Tf_update.RzBitBtn1Click(Sender: TObject);
begin
if 条件 then
……
else
Close;
end;
procedure Tf_update.RzBitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure Tf_update.FormShow(Sender: TObject);
begin
RzBitBtn1Click(Sender);
end;
[解决办法]
在窗体的FormShow事件里调用Close方法是无效的,有两种方法解决:
1. 在窗体打开之前判断。
if 条件满足 then
YourForm.Show //.ShowModal;
else
做其他处理,或什么也不做。
2. 在YourForm中创建计时器,在OnTimer()事件里处理是否需要打开窗体。
[解决办法]
1 写个public函数 CanShowModal
var
frm: TMyForm;
begin
frm := TMyForm.Create;
if frm.CanShowModal then
frm.ShowModal;
end;
2 在FormShow中判断 调用PostMessage(self.Handle,WM_QUIT,0,0)关闭