怎样取DBGRID内一个单元格内的值(比如第三行第一列的值)?而不是表内字段的值。怎么做啊?

解决方案 »

  1.   

    showmessage(DBGrid1.Fields[2].AsString);
      

  2.   

    type
      TDBGridEx = class(TDBGrid)
        function GetValue(row, col: integer):Variant;
      end;function TDBGridEx.GetValue(row, col: integer): Variant;
    begin
      // TDBGrid有行列索引,但它们是protected的
      self.Row := row;
      self.Col := col;
      Result := self.SelectedField.AsVariant;
    end;
      

  3.   

    设置当前行应该用如下:
      self.DataSource.DataSet.First;
      self.DataSource.DataSet.MoveBy(row);
      self.Col := col;
    注意异常处理
      

  4.   

    dbgrid的值其实就是表内字段的值,除非是stringgrid才是它的框里的值,你要知道dbgrid好比显示器。取某列的值可以这样写 DBGrid1.Fields[2].AsString ,至于是哪行,你的鼠标点哪行就是哪行。
      

  5.   

    type
      TDBGridEx = class(TDBGrid)
        function GetValue(row, col: integer):Variant;
      end;function TDBGridEx.GetValue(row, col: integer): Variant;
    begin
      // TDBGrid有行列索引,但它们是protected的
      self.Row := row;
      self.Col := col;
      Result := self.SelectedField.AsVariant;
    end;
      

  6.   

    用StringGrid可以方便读取!DBGrid好像不行!