如何自动关闭窗体?(50分)

  • 主题发起人 主题发起人 城里的月饼
  • 开始时间 开始时间

城里的月饼

Unregistered / Unconfirmed
GUEST, unregistred user!
我记得VFOXpro可以实现提示框窗体在多少秒后自动关闭,不知道delphi有没有这样的功能?
就是说用Application.MessageBox或其他函数生成的窗体,不用按确定键或任何键,就能在规定的
时间里就自动关闭而接着处理下面的程序!!,谢谢!
 
用Ttimer控件控制時間即可
 
能有具体的代码吗?我也想过用timer,但不知道怎么实现!
 
1.Ttimer控件控制
2.用消息可能也行!
 
在 TTimer 控件的 OnTimer 事件里 :
begin
Timer1.Enabled ;= False;
Form1.Close;
end;
 
同意楼上
其实用线程也好啊!!
 
这方法不好,

delay:=now+encode(0,0,x,0);
while now< delaydo
applicaton.pross...
exit;
 
timer控件
 
用GettickCount
var
begtime: integer;
begin
begtime := GetTickCount;
while (GetTickCount - begtime) > 你的时间(毫秒表示,1秒即1000)
Close;
end;
 
好啊,我去试试!
 
这个最简单了:
Sleep(5000);
//睡它 5 秒再关闭
Close;
 
我说的是用Application.MessageBox生成的窗体!!!我怎么关闭它?!!
 

设你调用Application.MessageBox('AAAAA', PChar(SSS), 0);
SSS为全局变量 var SSS: string;
你在Timer事件里写
procedure TForm1.Timer1Timer(Sender: TObject);
var
H: THandle;
begin
H := findwindow(nil, SSS);
SendMessage(H, WM_CLOSE, 0, 0);
end;
Timer设为间隔3000.
虽然办法土了点,不过很有效。:)
 
还有没有其他的方法?
 
定时器实现不是很简单吗?TTimer。
用Tick也太麻烦了吧?精度要求那么高干什么?
但是这里要注意一个问题!如果你的提示框是用的ShowMsg或者MessageBox怎么办?除非你
像我一样从来都是使用自己写的提示对话框。
MessageBox不同于一般的Form,提醒上面的人员注意!!!
 
多人接受答案了。
 
后退
顶部