Description

TSGJShellTreeView is directory TreeView for Lazarus.

Components show Directory Tree with User Places like Windows Explorer.

TSGJShellTreeView is compatible with Windows and Linux.

Example:

Left: TSGJShellTreeView on Ubuntu with and without icons.

Right: TSGJShellTreeView on Windows 11

TSGJShellTreeView

Icons on Linux

On linux icons must be load manually with ImageList component. Add custom icons to imagelist, and set to items. Icons must be set before "/" expanded first time.

var
  i:integer;
begin

  for i:=0 to SGJShellTreeView1.Items.Count-1 do
  begin
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_ThisPC then
    begin
    SGJShellTreeView1.Items[i].imageindex:=8;
    SGJShellTreeView1.Items[i].selectedindex:=8;
    end;
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_Desktop then
    begin
        SGJShellTreeView1.Items[i].imageindex:=8;
        SGJShellTreeView1.Items[i].selectedindex:=8;
    end;
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_Download then
    begin
        SGJShellTreeView1.Items[i].imageindex:=6;
        SGJShellTreeView1.Items[i].selectedindex:=6;
    end;
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_Pictures then
    begin
        SGJShellTreeView1.Items[i].imageindex:=8;
        SGJShellTreeView1.Items[i].selectedindex:=8;
    end;
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_Documents then
    begin
        SGJShellTreeView1.Items[i].imageindex:=5;
        SGJShellTreeView1.Items[i].selectedindex:=5;
    end;
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_Music then
    begin
        SGJShellTreeView1.Items[i].imageindex:=7;
        SGJShellTreeView1.Items[i].selectedindex:=7;
    end;
    if SGJShellTreeView1.Items[i].Text=RS_SGJShellTreeView_Videos then
    begin
        SGJShellTreeView1.Items[i].imageindex:=9;
        SGJShellTreeView1.Items[i].selectedindex:=9;
    end;
    if SGJShellTreeView1.Items[i].Text='/' then
    begin
        SGJShellTreeView1.Items[i].imageindex:=4;
        SGJShellTreeView1.Items[i].selectedindex:=4;
    end;
    SGJShellTreeView1.FolderIcon:=4;
    SGJShellTreeView1.FolderSelectedIcon:=4;
  end;