代码之家  ›  专栏  ›  技术社区  ›  Remus Rigo

dbgrid获取选定单元格

  •  3
  • Remus Rigo  · 技术社区  · 15 年前

    我需要得到Delphi中dbgrid的选定单元格的值。

    我不知道怎么做。我试过dbgrid的onmousemove

    pt : TGridCoord;
    ...
    pt:=dbGrid.MouseCoord(x, y);
    

    [编辑] 我可以使用onCellClick获取具有“column.field.asstring”的单元格值,但我想在单击该行的任何列时从第一列获取值。

    6 回复  |  直到 7 年前
        1
  •  8
  •   bluish dmajkic    12 年前

    找到它了。

    dbGrid.Fields[0].AsString 获取所选行的第一列的值。

        2
  •  3
  •   bluish dmajkic    12 年前
    procedure TForm1.DBGrid_DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh;  State: TGridDrawState);
    const defaultCheckBoxFieldNumber = 1;
    begin
      if DBGrid.SelectedField.FieldNo = defaultCheckBoxFieldNumber then
        ....;
      else
        ...;
    end;
    

    DBGrid.SelectedField.FieldNo 获取事件中的选定字段 DrawColumnCell 在里面 TDBGrid .

        3
  •  1
  •   Alin Sfetcu    15 年前

    我认为最简单的方法是连接 隐藏的 DBTEXT到数据集,然后设置DBTEXT以显示所需的字段,这样DBTEXT将始终包含活动记录的所需值。

        4
  •  1
  •   bluish dmajkic    12 年前

    DBGrid 没有焦点,因此您无法确定选择哪一行。而是查看链接的 DataSet . 一 数据集 有一个活动行。

        5
  •  0
  •   Daniel Yahdav    7 年前

    我知道这很晚了,不知道标题是什么意思。 但如果这意味着要获取选定的单元格值,请尝试以下操作:

    procedure Form1.dbGrid1CellClick(Column: TColumn);
    begin
      ShowMessage(table1.Fields[Column.Index].AsString);
    end;
    

    确保
    dbgrid1.options.dbrowselect:=false;

        6
  •  0
  •   Asad Alamdar    7 年前

    尝试此操作以获取dbgrid中所选单元格的值:

    procedure Form1.dbGrid1CellClick(Column: TColumn); begin ShowMessage(table1.Fields[DBGrid1.SelectedIndex].AsString); end;