求助,现有treeview控件配合三弹出式菜单,及相同的结点层使用统一的菜单。现有三层,popmenu有三个,由于结点为动态数据生成如何控制,选用treeview的popmenu的属性是不行的。

解决方案 »

  1.   

    在TreeView的onContextPopup事件中自己控制
      

  2.   

    可以这样使用吗?我没这末试过,我是在treeview的onMouseDown事件里面动态赋的,我是根据level来的,别的实现方式我还没用过
      

  3.   

    //动态显示树形结构的菜单
    procedure Tzct.TV1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      TV1.PopupMenu:=nil;
      if Tv1.Selected=nil then exit;
      if Button=(mbRight) then
        begin
          if TV1.Selected.Level=0 then
            begin
              N15.Visible:=true;
              if TV1.Selected.HasChildren=false then N15.Visible:=false;
            end
          else
            N15.Visible:=true;
        end;
      TV1.PopupMenu:=PopupMenu1;
    end;
    这是我写的,不过还有一些不太好的地方