Private

{ Private declarations }

function AddFile(FileMask: string; FFileAttr:DWORD): Boolean;

Объяви эту процедуру так же и потом нажми клавиши Ctrl+Shift+C и Delphi создаст заготовку для будущей процедуры:

function TForm1.AddFile(FileMask: string; FFileAttr:DWORD): Boolean;
begin
end;

В эту заготовку напиши следующее:

function TForm1.AddFile(FileMask: string; FFileAttr:DWORD): Boolean;

var ShInfo: TSHFileInfo; attributes: string; FileName: string; hFindFile: THandle; SearchRec: TSearchRec;

function AttrStr(Attr: integer): string;

begin Result := ''; if (FILE_ATTRIBUTE_DIRECTORY and Attr) > 0 then Result := Result + ''; if (FILE_ATTRIBUTE_ARCHIVE and Attr) > 0 then Result := Result + 'A'; if (FILE_ATTRIBUTE_READONLY and Attr) > 0 then Result := Result + 'R'; if (FILE_ATTRIBUTE_HIDDEN and Attr) > 0 then Result := Result + 'H'; if (FILE_ATTRIBUTE_SYSTEM and Attr) > 0 then Result := Result + 'S';

end;

begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;

Result := False;
hFindFile := FindFirst(FileMask, FFileAttr, SearchRec);
if hFindFile <> INVALID_HANDLE_VALUE then

try
repeat
with SearchRec.FindData do
begin

if (SearchRec.Name = '.') or (SearchRec.Name = '..') or
(SearchRec.Name = '') then continue;

FileName := SlashSep(Edit1.Text, SearchRec.Name); SHGetFileInfo(PChar(FileName), 0, ShInfo, SizeOf(ShInfo),