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

Вниз

Как директории отобразить в ListBox?   Найти похожие ветки 

 
Proxytel ©   (2007-02-27 12:24) [0]

Есть путь директории на диске, внутри нее еще список вложеных директорий. Есть ли несложный способ отобразить все вложенные директории(но только на этом уровне, не глубже) в ListBox?
Файлы проигнорировать.

Например,
c:\dir\dir1
c:\dir\dir2
...
c:\dir\dirN

В ListBox надо чтоб было:
dir1
dir2
...
dirN


 
ЮЮ ©   (2007-02-27 12:34) [1]

Просканировать "c:\dir" на предмет наличия директорий и поместить их имена в ListBox (см.Help + Examples по FindFirst)


 
Jeer ©   (2007-02-27 12:34) [2]

Трудно отсечь справа до последнего слэша ?
pos( ) и copy() | delete()


 
Proxytel ©   (2007-02-27 12:39) [3]

Дк в том-то и дело что как просканировать на предмет не всего содердимого, а исключительно директорий?


 
ЮЮ ©   (2007-02-27 12:45) [4]

в Example код приложения целого приведен
 if sr.Attr and faDirectory = faDirectory тогда это директория


 
Юрий Зотов ©   (2007-02-27 13:02) [5]

TDirectoryListBox, TDirectoryOutline, TShellTreeView.

На выбор. И ни строчки своего кода.


 
Proxytel ©   (2007-02-27 13:49) [6]


> TDirectoryListBox, TDirectoryOutline, TShellTreeView.
>
> На выбор. И ни строчки своего кода.


Ну и как например в TDirectoryListBox отобразить директории не деревом а списком?


 
Proxytel ©   (2007-02-27 14:01) [7]

Пробовал так:

var
 SR:TSearchRec;
 attr:Integer;
---------------------------------
if DirectoryExists("C:\")then
   if FindFirst(IncludeTrailingBackslash("C:\")+"*.*",attr,SR) = 0 then
   begin
     repeat
       if(sr.Attr=faDirectory) then
         listBox2.Items.Append(sr.Name);
     until (FindNext(sr)<>0);
     FindClose(SR);
   end;


Появляется только 2 директории причем на фанарь полный!


 
Юрий Зотов ©   (2007-02-27 14:07) [8]

Действительно - а как? И главное - а зачем?

Но уж если очень хочется, то так:

type
 TFriendDirectoryListBox = class(TDirectoryListBox);

procedure TForm1.FormCreate(Sender: TObject);
begin
 TFriendDirectoryListBox(DirectoryListBox1).Style := lbStandard
end;

Правда, тут уже придется писать код. Аж 2 строчки.


 
Юрий Зотов ©   (2007-02-27 14:26) [9]

Еще вариант, с обычным ListBox:

SendMessage(ListBox1.Handle, LB_DIR, DDL_DIRECTORY or DDL_EXCLUSIVE, Integer(PChar("C:\*.*")));


 
Proxytel ©   (2007-02-27 14:35) [10]


> type
>  TFriendDirectoryListBox = class(TDirectoryListBox);
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
>  TFriendDirectoryListBox(DirectoryListBox1).Style := lbStandard
> end;


Мда..
Гениально, но результат не совершенно не тот.

При выборе директории - остальные исчезают (это основное, что мне мешает и из-за чего я затеял все) + ко всему еще приплюсовываются в список все дерево до нужной директориию, включая "C:\"


 
Proxytel ©   (2007-02-27 14:46) [11]


> Еще вариант, с обычным ListBox:
>
> SendMessage(ListBox1.Handle, LB_DIR, DDL_DIRECTORY or DDL_EXCLUSIVE,
>  Integer(PChar("C:\*.*")));


А это круто!



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

Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
2-1171876396
Прохожев Максим
2007-02-19 12:13
2007.03.18
Количество строк в проекте


3-1166511531
alsov
2006-12-19 09:58
2007.03.18
увеличение скорости удаления данных


2-1172248355
Sfelt
2007-02-23 19:32
2007.03.18
Сохранение изображения


15-1172060034
Prohodil Mimo
2007-02-21 15:13
2007.03.18
А портит ли мобила дискету, если находится рядом? :о)


2-1172267824
arccis
2007-02-24 00:57
2007.03.18
закрытие и автозагрузка





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