var i:integer;
   Card:array of Tedit;
begin
try
    for i:=low(card) to high(card) do
        card[i].Free;     
finally
    setlength(card,10);
    for i:=low(card) to high(card) do
    begin
        card[i]:=Tedit.Create(self);
        if i=0 then
            card[i].left:=10
        else
        card[i].Left :=card[i-1].Left +10;
        card[i].Top :=10;
        card[i].Parent :=Form1;
    end;
end;

解决方案 »

  1.   

    第一个begin后面没有对应的end;
    最好为在为edit设置width
      

  2.   

    var i:integer;
       Card:array of Tedit;
    begin
    try
        for i:=low(card) to high(card)-1 do
            card[i].Free;     
    finally
        setlength(card,10);
        for i:=low(card) to high(card)-1 do
        begin
            card[i]:=Tedit.Create(self);
            if i=0 then
                card[i].left:=10
            else
            card[i].Left :=card[i-1].Left +10;
            card[i].Top :=10;
            card[i].Parent :=Form1;
        end;
    end;
      

  3.   

    第一个begin后面没有对应的end;因为FINALLY后要有END 的
      

  4.   

    真的是少了一个end
    try
    ...
    finally
    ...
    end;
      

  5.   

    这是我刚才copy漏掉的。
    运行起来就是有个错误。
    晕~~~~~~~~~~~``
      

  6.   

    我运行的时候不报错啊,不过创建出来的一排Edit好难看,把位置设置一下吧。你那里报的什么错?
      

  7.   

    try
        for i:=low(card) to high(card) do
            card[i].Free;     
    会不会是这里的问题,一开始card又没创建,函数low和high会不会出错,你干吗要free,去掉它,直接create。
      

  8.   

    i:=low(card)card[i-1].Left i怎么比数组下标还小。溢出了。
      

  9.   

    非也,楼上,如果一开始没有Edit,try后面的代码不会执行,还没有设置Card的长度。
      

  10.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
       Card:array of Tedit;
    begin
      try
        for i:=low(card) to high(card) do
            card[i].Free;
      finally
        setlength(card,10);
        for i:=low(card) to high(card) do
        begin
            card[i]:=Tedit.Create(self);
            if i=0 then
                card[i].left:=10
            else
            card[i].Left :=card[i-1].Left +10;
            card[i].Top :=10;
            card[i].Parent :=Form1;
        end;
      end;end; 可以的啊,你看看哪里出错了?什么错误提示?