How to change the height of a TreeView node to draw 3 rows in a node

I am using D7 with TreeView (and not VirtualTreeView). How to change node height to use OwnerDraw and draw 3 (or 5 or more) "lines" of text in a node rectangle?

So, the tree should look like this (root node + 2 nodes, aaa and bbb are shown):

[+] Root node
 |
 |  [aaa1
 |--[aaa2222
 |  [aaa333
 |
 |  [bbb1
 |--[bbb2222
 |  [bbb333
 |
...

I know how to use draw-draw. But I don’t know how to make a tall rectangle node.

+4
source share
1 answer

- node, node . VCL. , iIntegral TVITEMEX, node. , node, TVM_SETITEMHEIGHT node 1 , .

, node, Node, Integral node height:

procedure SetNodeHeight(Node: TTreeNode; Integral: Integer);
var
  ItemEx: TTVItemEx;
begin
  if not Node.Deleting then
  begin
    ItemEx.mask := TVIF_HANDLE or TVIF_INTEGRAL;
    ItemEx.hItem := Node.ItemId;
    ItemEx.iIntegral := Integral;
    TreeView_SetItem(Node.Handle, ItemEx);
  end;
end;

node 3 , node height:

procedure TForm1.Button1Click(Sender: TObject);
var
  Node: TTreeNode;
begin
  Node := TreeView1.Items.AddChild(nil, 'Node 3 times higher than default');
  SetNodeHeight(Node, 3);
end;

, VCL , .

+5

All Articles