如何控制主窗体的显示与隐藏?(20分)

  • 主题发起人 主题发起人 mrprogrammer
  • 开始时间 开始时间
M

mrprogrammer

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现这样一个功能:
在程序刚运行时,要求不显示窗体,在过了一段时间后,再要求显示窗体,
我是这样做的:在工程文件中Application.Run语句之前加入
Application.ShowMainForm := False;语句,然后在单元文件中某个事件中加入
Application.ShowMainForm := True;可结果主窗体一直不显示,但程序在运行。
为什么在Form1.Create和Form1.Show事件中无法用Form1.Hide;隐藏本窗体。
请问如何让主窗体在隐藏一段时间以后再显示?
 
Application.CreateForm(TForm1, Form1);
把这个改掉
Application.Initialize;
Form1:=TForm1.Create(application);
Form1.Height :=1;
Form1.Top:=-100;
Form1.ShowModal;
Application.Run;
然后你要加个TIMER控件来把窗体恢复出来!
 
建议用个Timer
 
cxx1997
说的对
 
cxx1997
说的也可以
直接用timer不行么?
 
cxx1997,首先谢谢你的解答,你的方法只是把窗体移到屏幕外,而并不是真正的隐藏,这
样的话在任务栏上会有显示,不是很理想,不知道你还有没有更好的办法?
 
在工程中这一句 Application.ShowMainForm := False;
要加在这一句之前 Application.CreateForm(TMainForm, MainForm);
再在OnCreate中Show。
 
try it
Application.ShowMainForm := True;
改成:
mainform.showmodal;
 
加一个TIMER控件,时间为100,ENABLE为FALSE;然后
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Self.Hide;
Timer1.Enabled :=False;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Timer1.Enabled :=True;
end;
 
控制时间用timer,因为他另开了一个线程,如果你在这段时间想做其他的事的话也可以
至于显示和隐藏可以hide,show也可以top:=100000
隐藏任务栏图标 SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
 
后退
顶部