判断窗体、控件是否存在(50分)

  • 主题发起人 主题发起人 yubo
  • 开始时间 开始时间
Y

yubo

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编一个程序需要动态创建窗体<br>如何判断它是否存在?
 
try control[x].objectname
 
procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>&nbsp;Form2:=nil;<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp;if Form2=nil then<br>&nbsp; &nbsp;Form2:=TForm2.Create(Self);<br>&nbsp;Form2.Show;<br>end;<br><br>procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br>&nbsp;Form2:=nil;<br>&nbsp;Action:=caFree;<br>end;<br><br>以上代码是在线写的,分都给我吧。
 
if assigned(控件名) then<br>...
 
你如果要反复创建,则在超出其作用域前Free它,并赋为nil
 
<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp;if not assigned(form2) then<br>&nbsp; &nbsp;Form2:=TForm2.Create(Self);<br>&nbsp;Form2.Show;<br>end;<br><br>在onclose中action:=cafree;<br>在onDestroy中form2:=nil;<br><br>
 
给你个标准的:<br>var a:TComponent;<br>begin<br>&nbsp; a:=Application.FindComponent('form2');<br>&nbsp; if a&lt;&gt;nil then<br>&nbsp; &nbsp; ShowMessage(a.Name+' has been found!');<br>end;
 
liguang 的做法比较好。
 
多人接受答案了。
 
后退
顶部