在这种情况下,
当多个DBGrid的连接了一个PopupMenu1,
如何从PopupMenu1中的点击事件得出当前所在的DBGrid的名字?这个比效难...高人帮忙...

解决方案 »

  1.   

    定义一个公共变量 FPopDBGrid: TDBGrid;
    在每个DBGrid的OnContextPopup事件中编写如下代码:
      FPopDBGrid := Sender;
    这样后,直接操作FPopDBGrid就行了
      

  2.   

    回楼上DBGrid好像没有OnContextPopup事件吧?
      

  3.   

    这样啊!那就得拦截DBGrid控件的WM_ContextMenu消息了!
      

  4.   

    也可以用下面的方法:
    在PopumMenu1的OnPopUp事件中编写代码:
    procedure TForm1.PopupMenu1Popup(Sender: TObject);
    begin
      if DBGrid1.Focused then
        ShowMessage(DBGrid1.Name)
      else
      if DBGrid2.Focused then
        ShowMessage(DBGrid2.Name);
    end;
      

  5.   

    通过popupmenu的PopupPoint判断落在那个DBGrid上面