//读数据库线程函数
function ReadDb(P:pointer):Longint;stdcall;
var
  i : Integer;
  itx : TListItem;
  bIsOnLine : Boolean;   //判断是否在线变量TRUE为在线,FALSE为不在线
  str : String;
  strIp : String;
  strMac : String;
  strName : String;
  strGroup : String;
  dwlen : DWORD;
  MacAddress : Array [0..5] of byte;
begin
  //MainForm.LV_Computer.Clear;
  with MainForm.AQ_ReadDb do
  begin
    Close;
    Sql.Clear;
    Sql.Text := 'Select IpAddr,MacAddr,ComputerName,GroupName from ComputerInfo';
    WaitForSingleObject(MainForm.hMutex,INFINITE);//等待互排量
    Open;
    MainForm.iHasAddLV := 1; //读取数据库完毕
    ReleaseMutex(MainForm.hMutex);  //释放互斥量
    First;
    while (not Eof) do
    begin
      bIsOnLine := FALSE;    //默认电脑不在线
      itx := MainForm.LV_Computer.Items.Add();
      str := Trim(FieldbyName('IpAddr').AsString);
      itx.Caption := str;
      str := Trim(FieldbyName('MacAddr').AsString);
      itx.SubItems.Add(str);
      str := Trim(FieldbyName('ComputerName').AsString);
      if (str='')
      then begin
        itx.SubItems.Add(Trim(FieldbyName('IpAddr').AsString));
      end
      else begin
        itx.SubItems.Add(str);
      end;
      str := Trim(FieldbyName('GroupName').AsString);
      if (str='')
      then begin
        itx.SubItems.Add('Default');
      end
      else begin
        itx.SubItems.Add(str);
      end;
      Next;
    end;
这是个线程函数线程执行到这的时候就会出现  list index out of bounds(1)  这个错误
请问是什么问题啊?急!!!