Щелчок правой кнопкой мыши на TDBGRID delphi2007

Когда я щелкаю правой кнопкой мыши на DBGrid, он открывает всплывающее меню, но также выбирает (подсвечивает) ячейку, в которой я сейчас нахожусь, когда щелкаю правой кнопкой мыши.

Есть ли способ не выбирать (выделять) ячейку, на которой я нахожусь, когда щелкаю правой кнопкой мыши, и открывать только всплывающее меню?

С уважением Йозеф


person Joe    schedule 10.12.2013    source источник


Ответы (1)


Вы можете перехватить WM_RButtonDown для своей DBGrid, используя класс интерпозера или собственный производный компонент.
Пример может выглядеть так:

type
  TDBGrid=Class(VDBGrids.TDBGrid)
    Procedure WMRButtonDown(var Msg:TMessage);Message  WM_RButtonDown;
  End;

  TForm3 = class(TForm)
    ........

implementation

{$R *.dfm}

{ TDBGrid }

procedure TDBGrid.WMRButtonDown(var Msg: TMessage);
begin
   if Tag = 123 then  // abuse the tag or implement an own property to handle only wished grid
      Msg.Result := 0
   else inherited;
end;
person bummi    schedule 10.12.2013