Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.044 c
8-1140431486
Новачёк-2
2006-02-20 13:31
2006.08.20
Из картинки вырезать раздельно круг и квадрат


4-1146397145
zaN0za
2006-04-30 15:39
2006.08.20
Вопрос по потокам


2-1154422393
Nagano
2006-08-01 12:53
2006.08.20
поиск файлов


15-1153734381
PSPF2003
2006-07-24 13:46
2006.08.20
Ошибка в 17 строке


1-1152113846
Muchacho
2006-07-05 19:37
2006.08.20
генератор отчетов для Delphi 2006 .NET





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский