@@ -6,7 +6,7 @@ interface
66
77uses
88 Classes, SysUtils, LCLType, Forms, Controls, Graphics, Dialogs,
9- ExtCtrls, StdCtrls, ShellCtrls, ComCtrls, apphelpers, extra_controls;
9+ ExtCtrls, StdCtrls, ShellCtrls, ComCtrls, apphelpers, extra_controls, Math ;
1010
1111type
1212
@@ -49,6 +49,8 @@ TfrmExtFileDialog = class(TExtForm)
4949 procedure ShellTreeViewChange (Sender: TObject; Node: TTreeNode);
5050 procedure ShellTreeViewChanging (Sender: TObject; Node: TTreeNode;
5151 var AllowChange: Boolean);
52+ procedure ShellTreeViewGetImageIndex (Sender: TObject; Node: TTreeNode);
53+ procedure ShellTreeViewGetSelectedIndex (Sender: TObject; Node: TTreeNode);
5254 private
5355 FInitialDir: String;
5456 FFilterNames: TStringList;
@@ -101,6 +103,8 @@ implementation
101103
102104{ $R *.lfm}
103105
106+ uses main;
107+
104108
105109function TfrmExtFileDialog.Execute : Boolean;
106110begin
@@ -118,6 +122,11 @@ procedure TfrmExtFileDialog.FormCreate(Sender: TObject);
118122begin
119123 if ClassType = TfrmExtFileDialog then
120124 raise Exception.CreateFmt(' Constructor of base class %s called. Use one of its descendants instead.' , [ClassName]);
125+ { $IfNDef WINDOWS}
126+ ShellTreeView.Images := MainForm.ImageListMain;
127+ ShellTreeView.OnGetImageIndex := @ShellTreeViewGetImageIndex;
128+ ShellTreeView.OnGetSelectedIndex := @ShellTreeViewGetSelectedIndex;
129+ { $ENDIF}
121130 FFilterNames := TStringList.Create;
122131 FFilterMasks := TStringList.Create;
123132 FFilterIndex := 0 ;
@@ -330,6 +339,18 @@ procedure TfrmExtFileDialog.ShellTreeViewChanging(Sender: TObject;
330339 AllowChange := not (ofNoChangeDir in FOptions);
331340end ;
332341
342+ procedure TfrmExtFileDialog.ShellTreeViewGetImageIndex (Sender: TObject;
343+ Node: TTreeNode);
344+ begin
345+ Node.ImageIndex := IfThen(Node.Level = 0 , 1 , 51 );
346+ end ;
347+
348+ procedure TfrmExtFileDialog.ShellTreeViewGetSelectedIndex (Sender: TObject;
349+ Node: TTreeNode);
350+ begin
351+ Node.ImageIndex := IfThen(Node.Level = 0 , 1 , 51 );
352+ end ;
353+
333354procedure TfrmExtFileDialog.SetTitle (AValue: String);
334355begin
335356 Caption := AValue;
0 commit comments