我想在窗体上建一个按钮  按一下就生成一个label  label用一个数组存放   大小不知道   如何在运行过程中动态分配label  希望给出简单程序  谢谢

解决方案 »

  1.   

    动态分配lable是什么意思,是分配数组大小还是什么
      

  2.   

    var
      labels: array of TLabel;//单元中定义
      i:integer;//单元中定义,初始=0
    var
      lable: TLabel;
    begin
      i := i + 1;
      SetLength(labels,i);
      lable := TLabel.Create(nil);
      labels[i-1] := lable;
    end;
      

  3.   

    其实你问的东西好多教材上都有,为什么不自己看呢?type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        FLablels  : TList;
        function GetLableCount: Integer;
        function GetLables(index: Integer): TLabel;
      public
        property Lables[index: Integer]: TLabel read GetLables;
        property LableCount: Integer read GetLableCount;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      ALable  : TLabel;
    begin
      ALable  := Lables[FLablels.Add(TLabel.Create(Self))];
      ALable.Parent   := Self;
      ALable.Caption  := 'A New Label';
      ALable.Show;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FLablels  := TList.Create;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      FLablels.Free;
    end;function TForm1.GetLableCount: Integer;
    begin
      Result  := FLablels.Count;
    end;function TForm1.GetLables(Index: Integer): TLabel;
    begin
      Result  := TLabel(FLablels[Index]);
    end;