Главная страница
    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.043 c
15-1153822612
rll-progr
2006-07-25 14:16
2006.08.20
ddeclientitem


6-1143652902
chizra
2006-03-29 21:21
2006.08.20
Почтовый клиент через почтовый прокси...


5-1137630535
Sp_pnz
2006-01-19 03:28
2006.08.20
Компонент кнопки со стилем BS_FLAT


15-1151931171
Parus
2006-07-03 16:52
2006.08.20
Словарь


2-1153393351
Mintos
2006-07-20 15:02
2006.08.20
Перевод фамилий





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский