Главная страница
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.49 MB
Время: 0.029 c
15-1155573637
qqqqqqq
2006-08-14 20:40
2006.09.10
Кто разбирается в ОС (Unix,Linux)? Какой Linux посоветуете?


9-1134888099
CrZarkon*
2005-12-18 09:41
2006.09.10
Milkshape


15-1156087524
PSPF2003
2006-08-20 19:25
2006.09.10
Улыбнитесь :)))


2-1156146595
novill
2006-08-21 11:49
2006.09.10
Философское. Как правильнее выйти из процедуры?


3-1151724487
Maggot
2006-07-01 07:28
2006.09.10
Счет количества клиентов определенного возраста