allcitys : array of TStaticText;我动态创建了一组TStaticText(组量不固定),
怎么把我所创建的TStaticText都赋给allCitys呢????????
AdoTemp.First;
      while not AdoTemp.Eof do
      begin
        lblCitys := TStaticText.Create(self);
        lblcitys.Parent := ScrollBox1;
        lblCitys.Color := clWhite;
        lblCitys.Caption := ADOTemp.FieldByName('name').AsString;
        lblCitys.Left := ADOTemp.FieldByName('xpos').AsInteger;
        lblCitys.Top := ADOTemp.FieldByName('ypos').AsInteger;
        LblCitys.OnMouseDown := myMouseDown;
        AdoTemp.Next;
      end;

解决方案 »

  1.   

    allcitys : array of TStaticText;var
    i : integer;
    begin
    //adotemp得查询代码省略      AdoTemp.First;
          i:= 0;
          setlength(allcitys,adotemp.recordcount);//动态数组,首先你要分配空间,这里是根据查询得到得记录总数来确定大小
          while not AdoTemp.Eof do
          begin
            lblCitys[i] := TStaticText.Create(self);
            lblcitys[i].Parent := ScrollBox1;
            lblCitys[i].Color := clWhite;
            lblCitys[i].Caption := ADOTemp.FieldByName('name').AsString;
            lblCitys[i].Left := ADOTemp.FieldByName('xpos').AsInteger;
            lblCitys[i].Top := ADOTemp.FieldByName('ypos').AsInteger;
            LblCitys[i].OnMouseDown := myMouseDown;
            inc(i);
            AdoTemp.Next;
          end;
      

  2.   

    SetLength(allcitys,Count);
          i:=0;
          AdoTemp.First;
          while not AdoTemp.Eof do
          begin
            lblCitys[i] := TStaticText.Create(self);
            lblcitys.Parent := ScrollBox1;
            lblCitys.Color := clWhite;
            lblCitys.Caption := ADOTemp.FieldByName('name').AsString;
            lblCitys.Left := ADOTemp.FieldByName('xpos').AsInteger;
            lblCitys.Top := ADOTemp.FieldByName('ypos').AsInteger;
            LblCitys.OnMouseDown := myMouseDown;
            AdoTemp.Next;
            inc(i);
          end;
      

  3.   

    不知道的还以为我copy paste呢。
      

  4.   

    wudi_1982(︻┳═一酒可千日不饮,但不可一饮不醉) ( ) 信誉:96  2006-08-11 14:26:00  
     foxyy8888(古来圣贤皆寂寞,惟有饮者留其名!) ( ) 信誉:94  2006-08-11 14:26:00 
     wudi_1982(︻┳═一酒可千日不饮,但不可一饮不醉) ( ) 信誉:96  2006-08-11 14:28:00  
     foxyy8888(古来圣贤皆寂寞,惟有饮者留其名!) ( ) 信誉:94  2006-08-11 14:28:00  
    你的沙发是不是装了轮子。
      

  5.   

    var
      Form1: TForm1;
      EditList: array of Tedit;
    implementation{$R *.dfm}
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,iLen: Integer;
    begin
      iLen := StrToInt(Edit1.Text);
      SetLength(EditList,iLen);
      for i := 0 to iLen - 1 do
      begin
        EditList[i] := TEdit.Create(Self);
        EditList[i].Parent := Panel1;
        EditList[i].Top := i * 20 + EditList[i].Height + 20;
        EditList[i].Left := 10;
        EditList[i].Text := IntToStr(i);
      end;
    end;
      

  6.   

    to : lzy6204
    你是重新写得代码,我们是在他得代码上改得,所以快。
      

  7.   

    估计lzy6204兄是在Delphi里面编译通过才贴上来的。
      

  8.   

    估计lzy6204(为了忘却的记忆) 兄弟是在计算i * 20 + EditList[i].Height + 20;得时候浪费了时间。。