procedure TForm1.Button1Click(Sender: TObject);
var
  Edit1 :TEdit;
begin
  If XXXXXXXXXXXXX then
  begin
    Edit1 :=TEdit.Create(Self);
  End;
end;

解决方案 »

  1.   

    if assigened(...) then
    begin
      ...
    end;
      

  2.   

    要么就用全局变量:
    if myEdit = nil then
      myEdit :=TEdit.Create(Self);使用完Free后, myEdit :=nil;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Edt : TEdit;
    begin
      Edt := nil;
      if Assigned(Edt) then
        showmessage('assign');
      Edt := TEdit.Create(self);
      if Assigned(Edt) then
        showmessage('assign');end;
      

  4.   

    if not Assigned(Edit1) then
    begin
      ...
    end;
      

  5.   

    对Assigned函数,这个函数可以判定一个对象的内容是不是为-1
      

  6.   

    FrameSniper(框架狙击手):
    对Assigned函数,这个函数可以判定一个对象的内容是不是为-1
    是什么意思啊
      

  7.   

    //Assigned(Value) 和 Value <> nil 效果一样~~
    //可以利用TComponent.FindComponent()方法来实现~~
    //参考如下代码~~procedure TForm1.Button1Click(Sender: TObject);
    var
      Edit1: TEdit;
    begin
      if not Assigned(FindComponent('Edit1')) then begin
        Edit1 := TEdit.Create(Self);
        Edit1.Name := 'Edit1';
        Edit1.Parent := Self;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      if Assigned(FindComponent('Edit1')) then FindComponent('Edit1').Free; //释放
    end;procedure TForm1.Button3Click(Sender: TObject);
    var
      vObject: TObject;
    begin
      if Assigned(vObject) then ShowMessage('vObject就没有创建,可其值并不是nil');
    end;
      

  8.   

    zswang(伴水清清)(专家门诊清洁工) 
    你的答案较好!!!