判断存在与否(50分)

  • 主题发起人 主题发起人 confidentbb
  • 开始时间 开始时间
C

confidentbb

Unregistered / Unconfirmed
GUEST, unregistred user!
动态生成一个控件,
第二次调用时,判断是否存在,
存在改变其属性,不存在则动态生成,再改变其属性。
 
if assigned(XXXX) then show
else XXXX := TXXXX.Create()
 
if not Assigned(ObjectName) then ObjectName := TClassName.Create();
 
据说assigned的判断不可靠,你可以直接赋值,不管它存在与否!
try
MyControl.Prop:=...
..........
except
end;


 
to jsxjd
assigned 不正确,举个例子,恩。
 
这里有很多这方面的讨论。
要提高 assigned判断的有效性。在Free后加一句。
MyForm.free;
MyForm:=nil;
 
主要是在定义全局变量的时候就要赋值了!
Var
PP : TPanel = Nil;

Procedure ShowPP;
Begin
If (PP=Nil) Then
Begin
PP:=TPanel.Create(Form1);
PP.Left:=0;
End;
PP.Left:=PP.Left+1;
End;
 
例如 Edit1:TEdit
if Edit1=nil then
Edit1:=TEdit1.create(Form1);
 
接受答案了.
 
后退
顶部