var
p: TCnQQPerson;for   j:=1   to    ADOQuery_Select.RecordCount   do
begin
              p:= TCnQQPerson.Create;              p.UserID := Trim(ADOQuery_Select.FieldValues['renyuanbianhao']);
              p.UserName := Trim(ADOQuery_Select.FieldValues['renyuanxingming']);
              p.UserDesc := Trim(ADOQuery_Select.FieldValues['renyuanxingming']); //人员备注或别名
              p.UserHead := img+'3_off.bmp';
              p.NameColor := clRed;              CnQQPanel1.Groups[i-1].QQGroup.AddMember(p); //取消这行在下面添
              ADOQuery_Select.Next;
end;
//想循环后在这里一起添加到QQGroup,怎么写啊              我想将上面j的数量生成对应的数组,每个数组存储相对应的P(p.UserID,p.UserName..p.NameColor),最后将数组一起添加到QQGroup,请问该如何定义使用数组,数组的应用真的不会

解决方案 »

  1.   

    for   j:=0   to    ADOQuery_Select.RecordCount-1   do
    下标从0开始的这样更好:
      ............
      i:=0;
      ADOQuery_Select.First;
      while not ADOQuery_Select.Eof do
      begin
        p:= TCnQQPerson.Create;    p.UserID := Trim(ADOQuery_Select.FieldValues['renyuanbianhao']);
        p.UserName := Trim(ADOQuery_Select.FieldValues['renyuanxingming']);
        p.UserDesc := Trim(ADOQuery_Select.FieldValues['renyuanxingming']); //人员备注或别名
        p.UserHead := img+'3_off.bmp';
        p.NameColor := clRed;
        CnQQPanel1.Groups[i].QQGroup.AddMember(p); //取消这行在下面添
        Inc(i);
        ADOQuery_Select.Next;   
      end;
      

  2.   

    楼上的好像不是我的意思,要取消这行在下面添CnQQPanel1.Groups[i-1].QQGroup.AddMember(p); 这一行,在j的循环外面再利用刚存好的数组再添加到CnQQPanel1.Groups[i-1].QQGroup.AddMember(p)这里,这里就不是什么P了,数组个数是动态的,个数等于j,每个数组存储(p.UserID,p.UserName..,p.NameColor)5个内容