Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.04 c
3-1151753384
Muchacho
2006-07-01 15:29
2006.09.10
Установка Fast Report 3.x в Delphi 2006 .NET


2-1156004569
Elf-Eluna-Alina
2006-08-19 20:22
2006.09.10
BLOB - вопрос ламера


2-1156189876
shart
2006-08-21 23:51
2006.09.10
WORD > 2xBYTE


2-1156351627
тире
2006-08-23 20:47
2006.09.10
GUID To array of Byte и обратно.


2-1156314634
Андрей Пазик
2006-08-23 10:30
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский