TDBGrid onSelect

时间:2008-12-17 13:45:07

标签: delphi tdbgrid

我想自定义TDBGrid:

1)添加onSelect / onUnselect事件 - 例如适合所选项目的展示次数。

2)在鼠标左键单击时删除选择项目。我继承了TDBGrid并重写了MouseDown,但是后来无法移动或调整列数:(

那么,怎么做呢?

D2009

4 个答案:

答案 0 :(得分:1)

您需要检查Selected属性中的更改。

答案 1 :(得分:1)

这让我完成了工作:

implementation

{$R *.dfm}

type
  THackDBGrid = class(TDBGrid);
//for info on why we must do this, see:
//http://delphi.about.com/od/oopindelphi/l/aa082603a.htm

var
  LastValidRow: integer;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  //assign this to the TDBGrid.DataSource.DataSet.OnDataChange Event
  if 0 <> HiWord(GetKeyState(VK_LBUTTON)) then begin
    THackDBGrid(DBGrid1).Row := LastValidRow;
  end
  else begin
    LastValidRow := THackDBGrid(DBGrid1).Row;
    inherited;
  end;
end;

答案 2 :(得分:0)

我认为您可能需要确保允许继承的Mousedown运行,以便执行标准移动和调整大小行为。

答案 3 :(得分:0)

&GT;我想您可能需要确保允许继承的Mousedown运行,以便执行标准移动和调整大小行为。

但继承的MouseDOwn使鼠标左键选择,我只想在鼠标右键上选择/取消选择(例如在TotalComander中选择/取消选择)