home *** CD-ROM | disk | FTP | other *** search
- unit shinfoUnit;
- { Note: You must remember to set viewStyle to vsSmallIcon in the
- Property Inspector!!!! }
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, ShellAPI, Buttons, ComCtrls, CommCtrl; { CommCtrl see XXX below }
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- ListView1: TListView;
- procedure Button1Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- procedure upDateListView;
- end;
-
-
- var
- Form1: TForm1;
-
- const
- ROOTDIR = 'C:\';
-
- implementation
-
- {$R *.DFM}
-
- function GetIcon( fn : string ) : integer;
- var
- FileInfo : TSHFileInfo;
- begin
- FillChar(FileInfo, SizeOf(FileInfo), #0);
- SHGetFileInfo(PChar(fn),0, FileInfo, SizeOf(FileInfo), SHGFI_SYSICONINDEX );
- result := FileInfo.iIcon;
- end;
-
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- updateListView;
- end;
-
- procedure TForm1.upDateListView;
- var
- NewItem : TListItem;
- d : string;
- Result : integer;
- SearchRec: TSearchRec;
- begin
- d := ROOTDIR;
- ListView1.Items.Clear;
- ListView1.Items.BeginUpdate;
- Result := FindFirst(d+'*.*', faAnyFile, SearchRec);
- while Result = 0 do
- begin
- NewItem := ListView1.Items.Add;
- NewItem.Caption := SearchRec.Name;
- NewItem.ImageIndex := GetIcon(d + Searchrec.Name);
- Result := FindNext(SearchRec);
- end;
- FindClose(SearchRec);
- ListView1.Items.EndUpdate;
- end;
-
- procedure TForm1.FormCreate(Sender: TObject);
- var
- ImageListHandle : THandle;
- FileInfo : TSHFileInfo;
- begin
- ImageListHandle := SHGetFileInfo('',
- 0,
- FileInfo,
- SizeOf(FileInfo),
- SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
- { XXX CommCtrl needed for these constants }
- SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_SMALL, ImageListHandle);
- end;
-
- end.
-