Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Внизlabel и form Найти похожие ветки
← →
Батя (2006-07-28 17:48) [0]всем здрасти!У меня вот какая проблема возникла. Я организовал поис файлов на диске и сталкнулся с проблемой.
procedure TForm2.FindFile(Dir:String);
Var SR:TSearchRec;
FindRes:Integer;
begin
FindRes:=FindFirst(Dir+"*.*",faAnyFile,SR);
While FindRes=0 do
begin
if ((SR.Attr and faDirectory)=faDirectory) and
((SR.Name=".")or(SR.Name="..")) then
begin
FindRes:=FindNext(SR);
Continue;
end;
if ((SR.Attr and faDirectory)=faDirectory) then // если найден каталог, то
begin
FindFile(Dir+SR.Name+"\"); // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли
FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
Continue; // продолжить цикл
end;
Label1.Caption:=SR.Name
FindRes:=FindNext(SR);
label1.Caption:=SR.Name
end;
FindClose(SR);
end;
Но припопытке его проиграть получаетя эффект зависания, а после в Label1 отображается только
последний найденный файл. Я бы так и оставил думал не поправимо. Но решил написать так
procedure TForm2.FindFile(Dir:String);
Var SR:TSearchRec;
FindRes:Integer;
begin
FindRes:=FindFirst(Dir+"*.*",faAnyFile,SR);
While FindRes=0 do
begin
if ((SR.Attr and faDirectory)=faDirectory) and
((SR.Name=".")or(SR.Name="..")) then
begin
FindRes:=FindNext(SR);
Continue;
end;
if ((SR.Attr and faDirectory)=faDirectory) then // если найден каталог, то
begin
FindFile(Dir+SR.Name+"\"); // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли
FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
Continue; // продолжить цикл
end;
Label1.Caption:=SR.Name
FindRes:=FindNext(SR);
form2.Caption:=SR.Name
end;
FindClose(SR);
end;
И удивился в form2.Caption меняется, безусловно достаточно быстро, но меняется.
Но в form2.Caption мне не надо мне надо в label. Я даже пробовал sleep(1000) - не помогает.
Помогите кто чем может. Спасибо!
← →
Desdechado © (2006-07-28 17:50) [1]Поставь в цикле Application.ProcessMessages
← →
Батя (2006-07-28 17:58) [2]
> Поставь в цикле Application.ProcessMessages
Спасибо реально помагло, а нельза ли не много приторозить процесс, т.е. что бы имена можно было разглядеть.
← →
Ketmar © (2006-07-28 18:07) [3]можно.
← →
Батя (2006-07-28 18:08) [4]
> можно.
а как
← →
Мефисто (2006-07-28 18:17) [5]sleep(1000) - задержка в милисекундах
← →
Батя (2006-07-28 18:30) [6]сенкю алл!
← →
Desdechado © (2006-07-28 18:31) [7]мож, я чегоне понял, но это имхо лишнее
FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
Continue; // продолжить цикл
← →
IceBeerg © (2006-07-28 18:39) [8]
> мож, я чегоне понял, но это имхо лишнее
Это обход вложенных каталогов (подкаталогов)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.075 c