要求鼠标点击dbgrid的每一个单元行 出现一个响应事件 实现查询!!
  dbgrid 已经连接显示有数据
  谢谢各位帮忙!

解决方案 »

  1.   

    有 colenter事件或者你在onclick事件中定位dataset
      

  2.   

    合理利用OnCellClick事件就可以满足你的要求
      

  3.   

    在与DBGrid相连的数据集中实现,数据集有一OnScroll事件,可以在这里写代码,这个事件是每当数据集的记录即在DBGrid中反映为行变为新的一行的时候触发,
      

  4.   

    dbgrid 中的options里面,把dgRowselect 和dgAlwaysShowselection选成true,即可
      

  5.   

    补充一点,然后在onclick事件里写程序就可以了……
      

  6.   

    建议用onmousedown里写事件,触发事件时做一行判断就可以了
    行可以从鼠标移动获得
      

  7.   

    dbgrid 中怎样交换两行的数据啊?
    用鼠标拖动其中的一行到另一行,就能实现这两行数据的交换,应该怎么实现呢?
      

  8.   

    他虽然有onmousedown事件,但是没有实现。重新声明一下就好了Unit edbgrid;interfaceuses
      DBGrids, Controls, Classes;type
      TEDBGrid = class(TDBGrid)
      private
        FOnMouseDown: TMouseEvent;
        FOnMouseUp: TMouseEvent;
      protected
        procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:
    Integer); override;
        procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y:
    Integer); override;
      published
        Property OnMouseDown : TMouseEvent read FOnMouseDown write
    FOnMouseDown ;
        Property OnMouseUp : TMouseEvent read FOnMouseUp write FOnMouseUp ;
    end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Data Controls',[TEDBGrid]);
    end;procedure TEDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState;
    X, Y: Integer);
    begin
      inherited MouseDown(Button,Shift,X,Y);
      if Assigned(FOnMouseDown) then
        FOnMouseDown(Self,Button,Shift,X,Y);
    end;procedure TEDBGrid.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
    Y: Integer);
    begin
      inherited MouseUp(Button,Shift,X,Y);
      if Assigned(FOnMouseUp) then
        FOnMouseUp(Self,Button,Shift,X,Y);
    end;
    end.
      

  9.   

    楼主,其实我没有看明白你说的问题,单击一行的响应事件,其实用OnCellClick就可以的,
    如果你有特殊的要求,但是对于你上面的要求,我看不明白,能不能说得清楚一点啊?
      

  10.   

    用OnCellClick事件里写就可以啊,或在双击事件里写
      

  11.   

    要不写在OnEditButtonClickK中就可以了