Форум: "Начинающим";
Текущий архив: 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