Выделение некоторых узлов другим шрифтом

Материал из DRKB

Выделение некоторых узлов другим шрифтом[править | править код]

uses 
  CommCtrl; 

procedure SetNodeBoldState(Node: TTreeNode; Value: Boolean); 
var 
  TVItem: TTVItem; 
begin 
  if not Assigned(Node) then Exit; 
  with TVItem do 
  begin 
    mask := TVIF_STATE or TVIF_HANDLE; 
    hItem := Node.ItemId; 
    stateMask := TVIS_BOLD; 
    if Value then state := TVIS_BOLD  
    else  
      state := 0; 
    TreeView_SetItem(Node.Handle, TVItem); 
  end; 
end; 

// Example: Make the first node bold. 
// Beispiel: Erster Eintrag fett machen. 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  SetNodeBoldState(TreeView1.Items[0], True); 
end;


Source: Взято с сайта: http://www.swissdelphicenter.ch
ID: 01127



uses CommCtrl;

procedure SetNodeState(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;

// И вызываем: 

SetNodeState(TreeView1.Selected, TVIS_BOLD); // Текст жиpным
SetNodeState(TreeView1.Selected, TVIS_CUT); // Иконкy бледной (Ctrl+X)
SetNodeState(TreeView1.Selected, TVIS_BOLD or TVIS_CUT); // Текст жиpным
SetNodeState(TreeView1.Selected, 0); // Ни того, ни дpyгого


Source: http://delphiworld.narod.ru/
ID: 01128