一、如何使 DBGrid 的某一列在失去焦点时触发事件;
二、DBGrid 在进行多行选择时,如何获得所选择的所有行的行号及相应所选择行的字段的内容。

解决方案 »

  1.   

    1、OnColExit事件
    2、
    连接DBGrid的AdoQuery或Query:
    AdoQuery1.First;
    while not AdoQuery1.Eof do
    begin
      if DBGrid1.SelectedRows.CurrentRowSelected then
      begin
        行号:=AdoQuery1.RecNo;
        字段内容:=AdoQuery1.FieldByName('FieldName').AsString;//AsString可以根据字
                                                             //段类型改变 
      end;
      AdoQuery1.Next;
    end;
      

  2.   

    楼上的未明白我的意思,
    重述如下:在 DBGrid 中如何获得当前失去焦点的行号、列号及在当前焦点中所输入的内容(在数据还未填入数据库之前)
      

  3.   

    1. 在dbgrid的OnColExit事件中 
       dbgrid.col就是你当前失去焦点的列号 dbgrid.datasource.datase.recno就是行号2. for i:=dbgrid.selectedRows.count-1 do
       begin
         dbgrid.datasource.dataset.gotobook( pointer(dbgrid.selectedRows.items[i]) );
         dbgrid.datasource.dataset.recno//当前行号
         dbgrid.datasource.dataset.fieldbyName(字段名).asString //当前行的值
       end;
      

  4.   

    楼上的这位,还是要从数据库中取值,我需要的是在数据还未存入数据库以前(在DBgrid还未移到下一行以前),取出当前行指定的格中的内容。