vLabel[i] := TLable.Create(self);
//自己是不能创建自己的!

解决方案 »

  1.   

    to: zswang(伴水)请问我应该怎么做呢谢谢!
      

  2.   

    for i:=0 to 10 do
    begin
      vLabel[i]:=TLabel.Create(self);//注意此行
      Try
        vLabel[i].Name:='Label'+inttostr(13+i);
        vLabel[i].Parent:=Panel1;
        vLabel[i].Top:=100;
        vLabel[i].left:=100;
        vLabel[i].caption:='Label'+inttostr(13+i);
      Except
        vLabel[i].Free;
      end;
      Adoquery2.Next;  //另外为什么你不使用Adoquery2却要移动记录呢?
    end;
      

  3.   

    to : zswang(伴水) 请问我应该怎么做呢谢谢!
      

  4.   

    Adoquery2.Next;  //另外为什么你不使用Adoquery2却要移动记录呢?
    这行是不要的。
    vLabel[i]:=TLabel.Create(self);//注意此行此行我应该怎么做呢有什么方法?
      

  5.   

    动态生成控件:    vobject:=Tobject.create(self);
      

  6.   

    //另外,建议你把如下语句改改for i := 0 to 10 do 
    //------>>>>>>>>>>>
    for i := Low(vLable) to High(vLable) do 
      

  7.   

    vLabel[i]:=TLabel.Create(self);//这样就行了
      

  8.   

    for i:=0 to 10 do
            begin
                    vLabel[i].Create(Application);
                    Try
                            vLabel[i].Name:='Label'+inttostr(13+i);
                            vLabel[i].Parent:=Panel1;
                            vLabel[i].Top:=100;
                            vLabel[i].left:=100;
                            vLabel[i].caption:='Label'+inttostr(13+i);
                    Except
                            vLabel[i].Free;
                    end;
                    Adoquery2.Next;
            end;
      

  9.   

    for i := Low(vLable) to High(vLable) do 
    编译都过不了,说没有说明标识符vLable
    var vLabel:array of TLabel;我是这样说明的。
      

  10.   

    vLabel[i]:=TLabel.Create(Application);//
    vLabel[i]:=TLabel.Create(Self);//都还是不行还是原来的错误。
      

  11.   

    给你参考(过程序功能动态生成labe),自已改一下吧
    procedure TfrmPfcl.CreateLabel(lf, tp: integer; LBCaption: string);
    begin
      with Tlabel.Create(panel1) do
      begin
        if length(lbCaption) > 8 then
          caption := copy(LBCaption, 1, 8) + #13 + copy(lbCaption, 9, length(lbCaption) - 8)
        else caption := lbCaption;
        left := lf;
        top := tp;
        parent := groupbox2;  end;
    end;
      

  12.   

    var vLabel:array of TLabel;我是这样说明的。//去,动态数组不早说begin
      SetLength(vLabel, 11); //分配11个元素资源
      //.............
    end;
      

  13.   

    for i:=0 to 10 do
            begin
                    vLabel[i].Create(Applicaton);
                    with vLabel[i] do
                    Try
                            vLabel[i].Name:='Label'+inttostr(13+i);
                            vLabel[i].Parent:=Panel1;
                            vLabel[i].Top:=100;
                            vLabel[i].left:=100;
                            vLabel[i].caption:='Label'+inttostr(13+i);
                    Except
                            vLabel[i].Free;
                    end;
                    Adoquery2.Next;
            end;
      

  14.   

    for i := Low(vLable) to High(vLable) do //你那是动态数组,要先SetLength()才可以;
      

  15.   

    很急,连续发了3个100分的帖子没有人回答,帮个忙吧。
    http://www.csdn.net/expert/topic/799/799889.xml?temp=.2711603
    http://www.csdn.net/expert/topic/799/799789.xml?temp=.6369135
    http://www.csdn.net/expert/topic/795/795315.xml?temp=.9500238谁能解决,全部可用分相送!
      

  16.   

    zswang(伴水) 谢谢,问题解决,可是不知道我在free它们的时候是不是不太正确?
      

  17.   

    ihihonline(小小->充电中……)
    zswang(伴水) 
    多谢你们,问题已经搞定了,可是不知道我在free它们的时候是不是有什么不对我总觉得我没有free它们。
    还有就是,我怎么对它们动态的给字体,大小,颜色?
      

  18.   

    TLabel.Create(Self);
    //            ~~~~~这时释放工作已经交给了“Self”vLabel[i].Font.Name := '宋体';
    vLabel[i].Font.Size := 20;
    vLabel[i].Font.Color := clBlue;
      

  19.   

    //            ~~~~~这时释放工作已经交给了“Self”
    意思就是我不用管它了吗?可是当我的combobox1中的text内容改变的时候,我想把上一次所有创建的label全部删除了,创建另一批label,我应该怎么做呢?现在我的combobox1的text内容改变时,我再调用它(我把它写成了过程),label还是第一次创建时内容,一点都没有变啊,我想是不是没有free或数组没有清空哟。