![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как директории отобразить в ListBox? [D6, XP]
Proxytel © (2007-02-27 12:24:00)Есть путь директории на диске, внутри нее еще список вложеных директорий. Есть ли несложный способ отобразить все вложенные директории(но только на этом уровне, не глубже) в ListBox?
Файлы проигнорировать.
Например,
c:\dir\dir1
c:\dir\dir2
...
c:\dir\dirN
В ListBox надо чтоб было:
dir1
dir2
...
dirN
Proxytel (2007-02-27 14:46:00) [1]
> Еще вариант, с обычным ListBox:
>
> SendMessage(ListBox1.Handle, LB_DIR, DDL_DIRECTORY or DDL_EXCLUSIVE,
> Integer(PChar('C:\*.*')));
А это круто!
Proxytel (2007-02-27 14:35:00) [2]
> type
> TFriendDirectoryListBox = class(TDirectoryListBox);
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> TFriendDirectoryListBox(DirectoryListBox1).Style := lbStandard
> end;
Мда..
Гениально, но результат не совершенно не тот.
При выборе директории - остальные исчезают (это основное, что мне мешает и из-за чего я затеял все) + ко всему еще приплюсовываются в список все дерево до нужной директориию, включая 'C:\'
Юрий Зотов (2007-02-27 14:26:00) [3]Еще вариант, с обычным ListBox:
SendMessage(ListBox1.Handle, LB_DIR, DDL_DIRECTORY or DDL_EXCLUSIVE, Integer(PChar('C:\*.*')));
Юрий Зотов (2007-02-27 14:07:00) [4]Действительно - а как? И главное - а зачем?
Но уж если очень хочется, то так:
type
TFriendDirectoryListBox = class(TDirectoryListBox);
procedure TForm1.FormCreate(Sender: TObject);
begin
TFriendDirectoryListBox(DirectoryListBox1).Style := lbStandard
end;
Правда, тут уже придется писать код. Аж 2 строчки.
Proxytel (2007-02-27 14:01:00) [5]Пробовал так:
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 директории причем на фанарь полный!
Proxytel (2007-02-27 13:49:00) [6]
> TDirectoryListBox, TDirectoryOutline, TShellTreeView.
>
> На выбор. И ни строчки своего кода.
Ну и как например в TDirectoryListBox отобразить директории не деревом а списком?
Юрий Зотов (2007-02-27 13:02:00) [7]TDirectoryListBox, TDirectoryOutline, TShellTreeView.
На выбор. И ни строчки своего кода.
ЮЮ (2007-02-27 12:45:00) [8]в Example код приложения целого приведен
if sr.Attr and faDirectory = faDirectory тогда это директория
Proxytel (2007-02-27 12:39:00) [9]Дк в том-то и дело что как просканировать на предмет не всего содердимого, а исключительно директорий?
ЮЮ (2007-02-27 12:34:00) [10]Просканировать 'c:\dir' на предмет наличия директорий и поместить их имена в ListBox (см.Help + Examples по FindFirst)
Jeer (2007-02-27 12:34:00) [11]Трудно отсечь справа до последнего слэша ?
pos( ) и copy() | delete()