你可以测试测试,看看是menu还是button之类的
if TObject(Sender) is TButton then
  Showmessage('Button');
if TObject(Sender) is TMenu then
  Showmessage('Menu');

解决方案 »

  1.   

    Sender就是改送事件的控制啊。呵呵,更简单的,这里的Sender: TObject肯定是一个TComponent(组件),你可以用TComponent(Sender).Name得到它的名字(如“Edit1”,“Label1”),用Sender.ClassName得到它的类名(如“TEdit”,“TLavel”)。但右键菜单有一点特殊,你不能在响应菜单项命令的时间判断(如果在这里判断,Sender就是菜单项了(TMenuItem)),应该用这个判断:TPopupMenu.PopupComponent,它表示是点在哪个控件上。
      

  2.   

    //阿贵说得没错procedure TForm1.MenuItem1Click(Sender: TObject);
    var
      vComponent: TComponent;
    begin
      vComponent := TPopupMenu(TMenuItem(Sender).GetParentMenu).PopupComponent;
      if vComponent is TMemo then ShowMessage(TMemo(vComponent).Text);
    end;