Как выделить узлы в 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)- установить узел как нормальный
Комментарии