如何在 delphi 中使用动态数组

how can use dynamic array in delphi

我在 delphi 中使用动态数组。

变量

var
  frame3:array[0..10] of TFrame3
procedure TForm1.Button1Click(sender:TObject);
begin
    frame3[count] := TFrame3.create(self);
    gridpanel2.insertcontrol(frame3[count]);

但是这个代码是 'A component named Frame3 alredy exists.' 这个错误我该怎么办?

如果您需要 Frame3 的多个实例,您需要在创建后为其重新命名。

所以改变

 frame3[count] := TFrame3.create(self);
 gridpanel2.insertcontrol(frame3[count]);

 frame3[count] := TFrame3.create(self);
 frame3[count].Name := 'Frame3_' + InttoStr(Count);
 gridpanel2.insertcontrol(frame3[count]);

另一个问题是在您的代码中看不到您如何更改 count 循环变量。是否提前定义?

你需要做这样的事情:

procedure TForm1.Button1Click(sender:TObject);
var count:byte;
begin
  for count:=1 to 10 do
    begin
      frame3[count] := TFrame3.create(self);
      ...
    end;

或使用任何其他方式在每个数组成员(class 实例)创建之前设置 count。此代码甚至可能根本不需要设置 Name 属性。