Missing information related to an old release notes lazarus / 39-Graphics ---------------------------------------------------------------------- jipété · 2025-05-17 16:26 Hello, Reading these lines (https://wiki.freepascal.org/Lazarus_1.2.0_release _notes#LCL_TTreeView_with_Images_no_longer_indents_nodes_without_image ), I don't know what to do with the PaintImages parameter found in the last line. I don't know where it comes from, I don't know how to use it, configure it. Best regards and thanks for your help. ---------------------------------------------------------------------- TRon · 2025-05-17 17:15 I believe the note is referring to method customdrawitem, see here. Each individual node in the tree can have a (valid) image index when the images are set and the event linked in the docs is afaik used to indicate that the image should be drawn (or not). Check the individual customdraw events in order to see which ones make actual use of the paintimages boolean. As an example, OnAdvancedcustomdraw event makes use of it. ---------------------------------------------------------------------- jipété · 2025-05-17 17:38 Thank you for your quick response. Give me a few days to look into this. Best Regards, ---------------------------------------------------------------------- jipété · 2025-05-20 13:19 Hello, I found another solution, simpler in my opinion: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TForm1.tv1MouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X,Y: Integer);var  tn, WorkNode, tmpNode: TTreeNode;  s, root, target: string;  sl: TStringList;begin.....    root := WorkNode.Text +'/'+ tn.Text; // tn is the selected treenode     tv1.BeginUpdate;    for i := 0 to sl.Count -1 do begin      s := CleanFolderName(sl[i]); // custom proc for cleaning filelistbox folders (will remove [ & ])      tmpNode := tv1.Items.AddChild(tv1.Selected, s);       target := root +'/'+ tmpNode.Text;       if IsDirectory(target) then       with tmpNode do begin         HasChildren := True;        StateIndex:=ImgIndexUncheck;        ImageIndex:=4; SelectedIndex:=4; end;      else        if (LowerCase(ExtractFileExt(s)) = '.ttf')      or (LowerCase(ExtractFileExt(s)) = '.ttc')        or (LowerCase(ExtractFileExt(s)) = '.otf')        then begin tmpNode.ImageIndex:=2; tmpNode.SelectedIndex:=2; end        else begin tmpNode.ImageIndex:=3; tmpNode.SelectedIndex:=3; end;    end; // for i    tv1.EndUpdate;.....end; But I can't figure out how to not open the items' label editor : see attached editing_open.png Any idea welcome.