在DBGrid1.columns[1]和DBGrid1.columns[2]的popupmenu里,用用一个弹出菜单,可菜单的处理中怎么区分是那个DBGrid1.columns调用的那

解决方案 »

  1.   

    if DBGrid1.SelectedField.Name = 'Field1' then
        DBGrid1.PopupMenu := PopupMenu1
      else if DBGrid1.SelectedField.Name = 'Field2' then
        DBGrid1.PopupMenu := PopupMenu2;
      

  2.   

    不是这个意思阿,我是问,POPUPMENU用同一个,当鼠标在不通的COLUMNS上调用POP时,在POP的执行代码里能判断出是从那个columns上调用的
      

  3.   

    什么问题你问的!
    if dbgridl.selectedfirld.name='field1' then
    showmessage(' you select  field1   '); 
    这还不能说清楚嘛
      

  4.   

    不是了,
    field1  field2   field3
    popupmenus菜单里有选项1和2
    在field1点鼠标右键弹出popupmenus选则1,在1的处理函数里判断出是从field1按的鼠标邮件执行的1的处理函数
    showmessage(' 是在field1上点鼠标右键执行的1'); 
    在field2点鼠标右键弹出popupmenus选则1,在1的处理函数里判断出是从field2按的鼠标邮件执行的1的处理函数
    showmessage(' 是在field2上点鼠标右键执行的1'); 大侠,明白了么??
      

  5.   

    可以根据PopupMenu1.PopupPoint.X位置来找是哪个列
      

  6.   

    if dbgridl.selectedfirld.name='field1' then
    showmessage(' you select  field1   '); 
      

  7.   

    可以根据PopupMenu1.PopupPoint.Y位置来找是哪个列
      

  8.   

    if DBGrid1.SelectedField.Name = 'Field1' then
      popupmenu1.itmes.add(query1.field1byname('field1'));
      

  9.   

    不对,应该是DBGrid1.SelectedField.FieldName,我弄好了,谢谢各位