我定义了两个类
TTarget = class(TObject).........end
TTargetArray = class (TObjectList).........end
程序运行时我怎样动态生成TTarget的对象,并加入到TTargetArray的对象中。
我以前是用C++写的,知道这个可以TTarget *m_pTarget=new TTarget 来解决,但是在delphi中怎么办?
谢谢了。

解决方案 »

  1.   

    补充:我事先无法知道有多少对象需要添加,所以var中就无法声明。
    var
       aaa:TTarget
    begin
       aaa:=TTarget.create;
       try
         ...........
       finally
         TTarget.free;
       end;
    end;
    是不行的。
      

  2.   

    TargetArray:=array of  TTarget;
    SetLength(TargetArray,100);
    TargetArray[0]:=TTarget.Create;
    FreeAndNill(TargetArray[0]) 
      

  3.   

    楼上的上来就setlength为100,恐怕不妥吧?
    我自己编了一段,成功了。PROCEDURE TForm1.FormCreate(Sender: TObject);
    BEGIN
      Array :=TTargetArry.create();
    END;PROCEDURE TForm1.FormDestroy(Sender: TObject);
    BEGIN
      Array.free();
    END;PROCEDURE TForm1.BitBtn1Click(Sender: TObject);
    VAR
      index             : integer;
    BEGIN
      index := Array.Add(TTarget.Create);
      WITH TTarget(Array.Items[index]) DO
      BEGIN
        ......
      END;
    END;