当一个DBGrid可多行选择时,怎样得出它所选各行的值??
比如当选择一行时是用AdoQuery1.FieldByName('字段名').AsString
但当选择多行时怎样跳到下一条被选的记录呢?DBGrid在多行选择时能否返回被选行的值?

解决方案 »

  1.   

    用tbooklist,tbookstr
    var
     i:integer;
      booklist:Tbooklist;
      book:Tbookstr;
    begin
     book:=table1.book;
     try
      listbox1.items.clear;
      booklist:=dbgrid1.selectedrows ;
      for i:=0 to booklistcount-1 do
       begin
        table1.book:=booklist[i];
        listbox1.items.add(table1.fieldbyname('name').asstring);
       end;
      finally
       table1.book:=book;
     end;
    end;
    把dbgrid选择的值返回到listbox中
      

  2.   

    看看下面的定位:
            if DBGrid_user.SelectedRows.Count>0 then  
           with DBGrid1.DataSource.DataSet do
              begin
                for i:=0 to DBGrid1.SelectedRows.Count-1 do
                begin
                  GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
                  //已经定位到一行。
                { Query1.Edit;
                  Query1.FieldByName('DEPT_CODE').AsString:=sdept;
                  Query1.Post;}
                end;
              end