在窗体FormShow事件中进行条件判断,如果不符合条件时,showmessage显示消息,然后自动关闭窗口。
showmessage会触发一个modal事件,点确定后,再执行close是无法关闭窗口的,只能通过其它办法才行。
下面是一种通过消息传递的方法,可完美解决在formshow事件中关闭窗口。
private
{ Private declarations }
//定义一个用户消息
procedure test(var msg: TMessage);message WM_USER;
procedure TForm1.FormShow(Sender: TObject);
begin
//发送消息
PostMessage(handle,WM_USER,0,0);
end;
procedure TForm1.test(var msg: TMessage);
begin
//在消息中关闭窗口
close;
end;