如何,如pplive中鼠标移至不同的节目节点时,对应节点出现一外框,并且该外框的背景色和边框色为与其他节点不同颜色。

解决方案 »

  1.   


    procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    var
      MyHitTest : THitTests;
      tr:TTreeNode;
    begin
      {MyHitTest:=self.TreeView1.GetHitTestInfoAt(x,y);
      if htOnItem in MyHitTest then
        self.Label1.Caption:='item';
      if htonlabel in MyHitTest then
        self.Label1.Caption:='label';}
      tr:=self.TreeView1.GetNodeAt(x,y);
      if tr<>nil then
      begin
        tr.Focused:=True;
        self.vg_tr:=tr;
      end;
    end;
    procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      {if Node.Text='1234' then
        self.TreeView1.Canvas.Brush.Color:=clBtnFace}
      if self.vg_tr=nil then
        Exit;
      if Node=self.vg_tr then
        self.TreeView1.Canvas.Brush.Color:=clskyblue
      else
        self.TreeView1.Canvas.Brush.Color:=clWindow;
    end;
      

  2.   

    虽然1楼写的Treeview的,但是我想肯定方法都是差不多的,vitual treeview也应该有这两个方法,照猫画虎吧