Здравствуйте товарищи ! В разработке программы столкнулся с такой проблемой. Есть такой код
Код:
procedure Find;
var
SearchRec: TSearchRec; // информация о файле или каталоге
begin
GetDir(0,cDir); // получить имя текущего каталога
if cDir[length(cDir)] <> '\' then cDir := cDir+'\';
if FindFirst(FileName, faAnyFile,SearchRec) = 0 then
repeat
if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then
begin
Form1.p.Items.Add(cDir + SearchRec.Name);
inc(n);
//form1.Caption :=inttostr(n);
end;
until FindNext(SearchRec) <> 0;
// обработка подкаталогов текущего каталога
if FindFirst('*', faDirectory, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) = faDirectory then
// каталоги .. и . тоже каталоги,
// но в них входить не надо !!!
if (SearchRec.Name[1] <> '.')and((SearchRec.Name[1] <> '..')) then
begin
ChDir(SearchRec.Name);// войти в каталог
Find; // __________________________________
ChDir('..');// выйти из каталога
end;
until FindNext(SearchRec) <> 0;
end;
Эту процедуру пробывал переписать в отдельный поток, но возникла проблема, код процедуры обращается к самой процедуре (выделено длинной линией).Пробывал так делать с потоком код переставал работать.