我想把listbox的项和adoquery里的数据集相关联,用了如下的代码
可是编译后,双击listbox中的项目,却会弹出"Invalid Pointer Opration"的错误对话框,实在是不知何解。请各位达人帮忙看看。本人素新手……procedure TForm1.Button1Click(Sender: TObject);
var
 book:tbook;
begin
 ADOQuery1.First;
 while not ADOQuery1.Eof do begin
   book:=ADOQuery1.GetBook;
   listbox1.Items.AddObject(ADOQuery1.Fields[0].AsString,tobject(book));
   ADOQuery1.Next;
 end;
end;procedure TForm1.ListBox1DblClick(Sender: TObject);
begin//定位到响应记录
 adoquery1.GotoBook(tbook(listbox1.Items.Objects[listbox1.ItemIndex]));
end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    book:tbook;
    begin
    ADOQuery1.First;
    while not ADOQuery1.Eof do begin
      book:=ADOQuery1.GetBook;
      listbox1.Items.AddObject(ADOQuery1.Fields[0].AsString,Pointer(book));
      ADOQuery1.Next;
    end;
    end;procedure TForm1.ListBox1DblClick(Sender: TObject);
    begin//定位到响应记录
    adoquery1.GotoBook(tbook(listbox1.Items.Objects[listbox1.ItemIndex]));
    end;