Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Как узнать количество каталогов   Найти похожие ветки 

 
qqpp   (2006-08-22 08:58) [0]

Надо узнать количество подкаталогов в каталоге D:\temp , и если количество не нулевое то создать каталог с именем sel(i:=i+1), а имя созданного каталога поместить в лейбел.


 
tButton ©   (2006-08-22 08:59) [1]

findFirst + findNext


 
umbra ©   (2006-08-22 10:03) [2]

ну и FindClose напоследок :)


 
tButton ©   (2006-08-22 10:08) [3]

ну да =)
но там он упоминается в примерах =)
а. ещё надо было ссылку на TSearchRec дать )


 
qqpp   (2006-08-22 12:15) [4]

а кто может примерно набрасать, я просто немогу разобратся как их (findFirst + findNext) пременить....
плиииз


 
PSPF2003 ©   (2006-08-22 12:20) [5]

Вот тебе маленький примерчик... Разберись :)

procedure TFastForm.DynBuild(Item: TMenuItem; Directory: string);
var
 res: Integer ;
 SearchRec: TSearchRec ;
 it, it2, it3, it4 : TMenuItem ;
 first: Boolean ;
 List : TStringList;
 i : Integer;
begin
 List := TStringList.Create;
 DeleteItem(Item, True);
/////////////////////////////////////////////////////
 it3 := TMenuItem.Create(Item);
 it3.Caption := FormatPath(Directory) ;
 it3.Hint := Directory;
 it3.OnClick := UrlClick;
 it3.ImageIndex := 1;
 Item.Add(it3);
 it3 := TMenuItem.Create(Item);
 it3.Caption := "-" ;
 it3.Hint := Directory;
 Item.Add(it3);
/////////////////////////////////////////////////////
 Application.ProcessMessages;
/////////////////////////////////////////////////////
 if (Directory <> "") and (Directory[Length(Directory)] <> "\") then
  Directory := Directory + "\";
/////////////////////////////////////////////////////
 res := FindFirst(Directory + "*.*", faAnyFile, SearchRec);
 first := True;
 while res = 0 do begin
   if (SearchRec.Name <> ".") and (SearchRec.Name <> "..") then begin
     if first then
       Item.Items[0].Visible := False;
     if (SearchRec.Attr and faDirectory) = faDirectory then begin
       it := TMenuItem.Create(Item);
       it.Caption := SearchRec.Name;
       it.Hint := Directory + SearchRec.Name;
       it.OnClick := DirectoryClick;
       it.ImageIndex := 0;
       Application.ProcessMessages;
       Item.Add(it);
       it2 := TMenuItem.Create(it);
       with it2 do begin
         Caption := RC_EmptyItem;
         ImageIndex := 0;
         Visible := false;
         Application.ProcessMessages;
         Enabled := False;
         Tag := 1;
       end;
       it.Add(it2);
     end
     else begin
        if Pos(AnsiUpperCase(ExtractFileExt(SearchRec.Name)), AnsiUpperCase(Ext)) = 0 then
          List.Add(Directory + SearchRec.Name);
       end;
     end;
     res := FindNext(SearchRec);
   end;
   FindClose(SearchRec);
   it3 := TMenuItem.Create(Item);
   it3.Caption := "-" ;
   it3.ImageIndex := -1;
   Item.Add(it3);
   it4 := TMenuItem.Create(Item);
   it4.Caption := "&#212;&#224;&#233;&#235;&#251;" ;
   it4.Visible := false;
   for i := 0 to List.Count - 1 do begin
     it := TMenuItem.Create(Item);
     it.Caption := ChangeFileExt(ExtractFileName(List.Strings[i]) + ExtractFileExt(List.Strings[i]), "");
     it.OnClick := UrlClick;
     it.Hint := List.Strings[i];
     if  ExtractFileExt(AnsiUpperCase(List.Strings[i])) = ".EXE" then
       it.Bitmap := (ExtractBMP(it.Hint));
     it4.Add(it);
     it4.Visible := true;
  end;
   it4.ImageIndex := 2;
   Item.Add(it4);
   List.Free;
end;


 
DiamondShark ©   (2006-08-22 12:22) [6]

Говори честно: мне лень разобраться как их применить.


 
Плохиш ©   (2006-08-22 12:27) [7]


> qqpp   (22.08.06 12:15) [4]
> а кто может примерно набрасать, я просто немогу разобратся
> как их (findFirst + findNext) пременить....
> плиииз

В связи с тем, что фирма Борланд включила пример использования этих функций в справку, то делаем вывод, что автор ветки полный ламер и халявщик. А ламер, как известно, маст дай!


 
PSPF2003 ©   (2006-08-22 12:28) [8]


> Плохиш ©

Поддерживаю!


 
Сергей М. ©   (2006-08-22 12:38) [9]


> qqpp   (22.08.06 12:15) [4]


На вкладке "Win 3.1" есть компонент TDirectoryListBox, приспособить его под свои нужды проще простого - для этого даже не нужно знать ни про какие FindFirst/FindNext.

В кр.случае можно взять за основу готовую процедуру у этого компонента, благо исх-ки его имеются.

см. юнит FileCtrl.pas и реализацию метода TDirectoryListbox.ReadDirectoryNames - это как раз то что тебе нужно)



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
15-1155020125
QuickFinder
2006-08-08 10:55
2006.09.10
Популярность поисковиков


15-1155632808
StriderMan
2006-08-15 13:06
2006.09.10
Отличие делфишного CASE от сишного SWITCH


2-1155630742
GEM
2006-08-15 12:32
2006.09.10
Calculated field - не удается правильно вычислить


15-1156085949
vajo
2006-08-20 18:59
2006.09.10
Автовключение компьютера.


4-1147525423
pirate
2006-05-13 17:03
2006.09.10
Запуск программы с админскими правами





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