当一个事件发生时,程序会执行form3.show,但是如果此事件连续发生,就会弹出很多个form3,如何判断发现form3已经显示,不需再重新显示一个新的?
解决方案 »
- 请教高手:用Indy组件的IdTCPClient、IdHTTP组件,怎么通过HTTP代理访问外网?
- 如何才能在ACCESS数据库中保存图像??
- SQL问题:如何把一条记录插入到表结尾处?
- 高分!Delphi5下编好的程序,能否直接在Delphi8进行编译???
- 如何把select出来的东西添加到一个数组中
- 为什么delphi6.0版本中locate()不能用
- DELPHI关闭自身程序
- 快来看看啊!!!
- 请问谁能给我CTTS 这个中文语音控件,并且最好有DELPHI中的用法,多谢! 70分送上
- 为什么,我ping时总出错,但可以上网
- QReport的奇怪问题!!!
- dbexpress读取oracle的long raw字段的问题
每次打开form3时先create
以后每次都判断form3是否为nil如不是则exit
在form3的destroy 事件中将form3在至为nil
begin
Application.CreateForm(TForm3,Form3) ;
Form3.Show ;
end ;
begin
form1=tform1.create(self);
form1.show;
end;记住关闭窗体时,释放form1,给分把
if Not Assigned(Form3) then
begin
Application.CreateForm(TForm3,Form3) ;
Form3.Show ;
end ;
第一次运行可以,不过第二次由于form3已经加载了,所以Assigned(Form3)总为true了,无法再跳出form3,是不是应该在form3关闭事件中加入卸载它,或者什么别的?
Form2.Show;
begin
Application.CreateForm(TForm3,Form3) ;
if not Form3.Visible then
Form3.Show ;
end ;
begin
Application.CreateForm(TForm3,Form3) ;
if not Form3.Visible then
Form3.Show ;
end ;
if Not Assigned(Form3) then
begin
Application.CreateForm(TForm3,Form3) ;
Form3.Show ;
end ;// 关闭 :Form3.Free ;
Form3 := Nil ;
begin
Application.CreateForm(TForm3,Form3) ;
Form3.Show ;
end ;
或者用formshowmodal来试试
begin
Application.CreateForm(TForm3,Form3) ;
Form3.Show ;
end ;
begin
Application.CreateForm(TForm3,Form3) ;
if not Form3.Visible then
Form3.Show ;
end ;
,以上大家的方法都不错的,结贴吧!
begin
Application.CreateForm(TForm3,Form3) ;
if not Form3.Visible then
Form3.Show ;
end ;
关闭后:
Form3.Free ;
Form3 := Nil ;
可以结贴了吧!