home *** CD-ROM | disk | FTP | other *** search
- unit Fileiter;
-
- { FILEITER.PAS copyright (c) 1994 by Charles Calvert }
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs,
- Messages, Classes, Graphics,
- Controls, Forms, AllDirs;
-
- type
- TFileIterator = class(TRunDirs)
- private
- FFileList: TStringList;
- FDirList: TStringList;
- FUseFileList: Boolean;
- FUseDirList: Boolean;
- procedure SetFileList(UseList: Boolean);
- procedure SetDirList(UseList: Boolean);
- protected
- procedure ProcessName(FName: String; SR: TSearchRec); override;
- procedure ProcessDir(Start: String); override;
- public
- destructor Destroy; override;
- property FileList: TStringList read FFileList;
- property DirList: TStringList read FDirList;
- published
- property UseFileList: Boolean read FUseFileList write SetFileList;
- property UseDirList: Boolean read FUseDirList write SetDirList;
- property OnFoundFile;
- property OnProcessDir;
- end;
-
- procedure Register;
-
- implementation
-
- procedure Register;
- begin
- RegisterComponents('Unleash', [TFileIterator]);
- end;
-
- destructor TFileIterator.Destroy;
- begin
- FFileList.Free;
- FDirList.Free;
- inherited Destroy;
- end;
-
- procedure TFileIterator.SetFileList(UseList: Boolean);
- begin
- FUseFileList := UseList;
- if FUseFileList then
- FFileList := TStringList.Create
- else
- FFileList.Free;
- end;
-
- procedure TFileIterator.SetDirList(UseList: Boolean);
- begin
- FUseDirList := UseList;
- if FUseDirList then
- FDirList := TStringList.Create
- else
- FDirList.Free;
- end;
-
- procedure TFileIterator.ProcessName(FName: String; SR: TSearchRec);
- begin
- inherited ProcessName(FName, SR);
- if FUseFileList then FFileList.Add(FName);
- end;
-
- procedure TFileIterator.ProcessDir(Start: string);
- begin
- inherited ProcessDir(Start);
- if FUseDirList then FDirList.Add(CurDir);
- end;
-
- end.
-