如何在delphi中使用动态数组

时间:2015-11-02 05:29:24

标签: arrays delphi dynamic insert frame

我在delphi中使用动态数组。

VAR

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

但是这段代码是'一个名为Frame3 alredy的组件存在。' 这个错误什么可以ido?

2 个答案:

答案 0 :(得分:3)

如果您需要多个TFrame3实例,则需要在创建后为其命名。

所以改变

<p>

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

答案 1 :(得分:1)

另一个问题是,在代码中没有看到如何更改count循环变量。它是事先定义的吗?

你需要做这样的事情:

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

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