Mega Code Archive

 
Categories / Delphi / Examples
 

How to make the selected treenode bold without owner drawing

Basic code demonstrating how to make the selected TreeNode Bold without owner drawing The following code uses the TVIS_BOLD constant to make the selected node bold. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) TreeView1: TTreeView; procedure TreeView1Change(Sender: TObject; Node: TTreeNode); procedure TreeView1Changing(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Commctrl; {$R *.DFM} procedure SetNodeBold(Node: TTreeNode; MakeBold: Boolean); var Item: TTVItem; Template: Integer; begin if Assigned(Node) then begin if MakeBold then Template := -1 else Template := 0; Item.Mask := TVIF_STATE; Item.hItem := Node.ItemId; Item.StateMask := TVIS_BOLD; Item.State := Item.StateMask and Template; TreeView_SetItem(Node.TreeView.Handle, Item); end; end; procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); begin SetNodeBold(Node, True); end; procedure TForm1.TreeView1Changing(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean); begin SetNodeBold(TreeView1.Selected, False) end; end.