Как выделить узлы в TTreeView
Процедура SetNodeBold
uses { ... }, CommCtrl; procedure SetNodeBold(node: TTreeNode; Flags: Integer); var tvi: TTVItem; begin FillChar(tvi, SizeOf(tvi), 0); tvi.hItem:= node.ItemID; tvi.Mask:= TVIF_STATE; tvi.StateMask:= TVIS_BOLD or TVIS_CUT; tvi.State:= Flags; TreeView_SetItem(node.Handle, tvi); end;
При добавлении узлов нужно просто вызывать эту процедуру в нужном месте. Но возможно и более гибкое применение. Например, так:
procedure TForm1.FormCreate(Sender: TObject); begin SetNodeBold(TreeView1.Items[0], TVIS_BOLD); SetNodeBold(TreeView1.Items[3], TVIS_BOLD); SetNodeBold(TreeView1.Items[6], TVIS_BOLD); end;
Установка флагов выглядит так:
SetNodeState(node, TVIS_BOLD)
- установить узел как BoldSetNodeState(node, TVIS_CUT)
- установить узел как CuttedSetNodeState(node, TVIS_BOLD or TVIS_CUT)
- установить узел как Bold и CuttedSetNodeState(node, 0)
- установить узел как нормальный
Комментарии