问题:动态创建了几个PANEL 怎样删除指定的PANEL(删除时与PANEL的创建顺序无关),好像利用LIST,把创建的PANEL放入LIST.不能实现删除鼠标指定的那个.(可以得用POPUPMENU右键点击任意一个PANEL,选择DELETE把这个PANEL删除).大家多给意见...在线等!!!!!!!

解决方案 »

  1.   

    可以使用右键事件来获取当前Panel,再删除
      

  2.   

    什么意思.请说明白..是获取当前PANEL的什么东西??/
      

  3.   

    动态创建PANEL的时候直接指定它的右键POPUPMENU.在弹出菜单中 Showmessage(pm1.PopupComponent.Name);PopupComponent就是菜单弹出的PANEL
      

  4.   

    ControlAtPos可以获取某个位置的Control,找到后直接Free就行了
      

  5.   

    ZyxIp 你的方法可不可以说的明白点,我不理解该怎么做..呵呵....
      

  6.   

    Showmessage(Lists.PopupComponent.Name); 
    PopupComponent就是菜单弹出的PANEL
      

  7.   

    请教各位另一个问题.动态创建PANEL时.点击一次就产生一个PANEL.(通过PANEL的移动可发现,点击了几次就有几个PANEL产生),他们之间有什么关系..
      

  8.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      pn:array[0..3] of  Tpanel;
      i: integer;
    begin
      for i:=0 to 3 do
      begin
        pn[i]:=Tpanel.Create(self);
        pn[i].Parent:=self;
        pn[i].Left:=100*i;
        pn[i].Width:=50;
        pn[i].PopupMenu:=PopupMenu1;
      end;
    end;procedure TForm1.deleteClick(Sender: TObject);
    begin
      if popupmenu1.PopupComponent is Tpanel then
      begin
        (popupmenu1.PopupComponent as Tpanel).Free;
      end;
    end;