我用TDBGrid绑定了数据 ,设置了行选定
当我点击某行后再点击另外一个按钮,在该按钮方法里,怎么得到上面那个TDBGrid当前选择的行的数据
我调式时dbgrd1.SelectedIndex 不官我选哪行都是为0的,不知道为什么

解决方案 »

  1.   

    dbgrd1.SelectedIndex是指当前选中行的列数,你选中了一行,默认首列0
      

  2.   

    dbgrid1.selectedrowsprocedure TForm1.Button1Click(Sender: TObject);
    var
      i, j: Integer;
      s: string;
    begin
      if DBGrid1.SelectedRows.Count>0 then
        with DBGrid1.DataSource.DataSet do
          for i:=0 to DBGrid1.SelectedRows.Count-1 do
          begin
            GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
            for j := 0 to FieldCount-1 do
            begin          if (j>0) then s:=s+', ';
              s:=s+Fields[j].AsString;
            end;
            Listbox1.Items.Add(s);
            s:= '';
          end;
    end;
      

  3.   

    选中DBGrid的某行以后,直接在使用DBGrid.DataSource.DataSet.FieldByName('...').Value或者DBGrid.DataSource.DataSet.Fields[i].Value来使用数据即可。
      

  4.   

    这种绑定数据集的 
    直接用数据集操作就好了DBGrid.DataSource.DataSet.FieldByName('字段名').Value
      

  5.   

    谢谢各位啊,呵呵,赶时间,被人临时抓来写delphi客户端,连基本的语法都是边写边看的,所以什么都还不知道啊,以后多多指教啊
      

  6.   


    什么行业、什么性质的应用啊?
    还用delphi的是很少了。。
      

  7.   

    怎么不用EhLIB组件,我一直用着,相当好用。
      

  8.   

    选中直接在使用DBGrid.DataSource.DataSet.FieldByName('...').Value或者DBGrid.DataSource.DataSet.Fields[i].Value来使用数据即可。
      

  9.   

    直接访问数据
    DBGrid.DataSource.DataSet.FieldByName('  ').Value
    或者
    DBGrid.DataSource.DataSet.Fields[i].Value如果是ADO神马的,也可以ADOQuery.fieldbyname('  ').value或者ADOQuery.fields[i].value
      

  10.   

    DBGrid.DataSource.DataSet.FieldByName('...').Value或者DBGrid.DataSource.DataSet.Fields[i].Value一直这样用
      

  11.   


    现在桌面软件还有很多企业在用,不是所有企业都是需要那种WEB。win32还是有很多优势的。