TDBGrid onSelect - PullRequest
       19

TDBGrid onSelect

1 голос
/ 17 декабря 2008

Я бы хотел настроить TDBGrid:

1) добавить события onSelect / onUnselect - например, подходит для показа количества выбранных предметов.

2) удалить выбранный элемент по нажатию левой кнопки мыши. Я унаследовал TDBGrid и переписал MouseDown, но тогда невозможно переместить или изменить размер столбцов :(

Итак, как это сделать?

D2009

Ответы [ 4 ]

1 голос
/ 29 января 2009

Это делает работу за меня:

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;
1 голос
/ 29 января 2009

Вам необходимо проверить изменения в свойстве Selected.

0 голосов
/ 17 декабря 2008

> Я думаю, вам, вероятно, нужно убедиться, что вы разрешаете запуск унаследованного Mousedown, чтобы выполнялось стандартное поведение перемещения и изменения размера.

Но унаследованный MouseDOwn делает выбор на левой кнопке мыши, и я хочу только выбирать / отменять выбор на правой кнопке мыши (например, выбирать / отменять выбор в TotalComander)

0 голосов
/ 17 декабря 2008

Я думаю, вам, вероятно, нужно убедиться, что вы разрешаете запуск унаследованного Mousedown, чтобы выполнялось стандартное поведение перемещения и изменения размера.

...