Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизФайловая система и TREEVIEW Найти похожие ветки
← →
main (2004-11-18 08:30) [0]Как сделать процедуру, позволяющую просканировать заданную директорию на машине(например, "C:\MainDir") и вывести ее содержимое в TREEVIEW (и файлы и каталоги)
← →
ЮЮ © (2004-11-18 09:16) [1]написанием её кода, естественно :)
FindFirst + Example - сканирование директории
← →
main (2004-11-18 09:23) [2]А можно примерчик, плиз
← →
Anatoly Podgoretsky © (2004-11-18 09:38) [3]А местный FAQ гадость?
← →
main (2004-11-18 10:10) [4]Нужно реализовать что-то наподобие Проводника Виндос. В делфи есть 2 компонента: DirectoryOutline и FileList. Как их объединить в одно - чтобы показывал и директории и файлы
← →
ЮЮ © (2004-11-18 10:17) [5]TOpenDialog
← →
Alx2 © (2004-11-18 10:22) [6]>main (18.11.04 10:10)
У одного компонента есть свойство, в котором можно его соединить с другим компонентом
← →
Игорь Шевченко © (2004-11-18 11:26) [7]
> А можно примерчик, плиз
Program Files\Borland\Delphi\Demos\Doc\FilmanEx\*.*
← →
Amoeba © (2004-11-18 11:48) [8]А еще есть (если надо что покруче и побольше) бесплатная библиотека ShellShock:
http://sourceforge.net/projects/tpshellshock/
← →
Dimaxx © (2004-11-19 00:17) [9]Вот нарыто из своей копилки-свалки:
Перевод списка файлов/каталогов из TStringList в TreeView с построением "дерева каталогов".
Прислал:
Радионов Алексей (Alx2) (Ульяновск) ( 3 июля 2002 г. )
© Alx2
Не тестировано
Описание:
Иногда бывает нужно построить "дерево каталогов" по заданному списку файлов и папок (причем физически эти файлы и каталоги могут не существовать). Представляемый здесь код занимается именно этим.
Зависимости:
sysutils, classes, comctrls
Ограничения:
D5, D6
Исходный текст:
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Перевод списка файлов/каталогов из TStringList в TreeView с построением "дерева каталогов"
Иногда бывает нужно построить "дерево каталогов" по заданному списку файлов и папок (причем физически эти файлы и каталоги могут не существовать). Представляемый здесь код занимается именно этим.
Зависимости:
sysutils, classes, comctrls
Автор: Радионов Алексей (Alx2), alx@argo.mv.ru, ICQ:113442587, Ульяновск
Copyright: Alx2
Дата: 3 июля 2002 г.
***************************************************** }
procedure FillTreeViewWithFiles(TreeView1 : TTreeView; Strs : TStringList);
Var
CachedStrs: TStringList; // CachedStrs вводится для ускорения поиска
// в уже готовом дереве.
Procedure AddItem(Lev: Integer; ParentNode: TTreeNode; S: String);
Function FindNodeWithText(AParent: TTreeNode; Const S: String): TTreeNode;
Var
K : Integer;
fStr : String;
tmpNode: TTreeNode;
Begin
Result := Nil;
fStr := S + IntToStr(Integer(AParent));
K := CachedStrs.IndexOf(fStr);
If K > -1 Then
Result := Pointer(CachedStrs.Objects[K])
Else
Begin
If AParent <> Nil Then
tmpNode := AParent.getFirstChild
Else
tmpNode := TreeView1.Items.GetFirstNode;
While tmpNode <> Nil Do
Begin
If tmpNode.Text = S Then
Begin
Result := tmpNode;
CachedStrs.AddObject(fStr, Pointer(tmpNode));
break;
End;
tmpNode := tmpNode.getNextSibling;
End;
End
End;
Var
prefix: String;
ID : Integer;
aNode : TTreeNode;
Begin
If S = "" Then Exit;
ID := Pos("\", S);
prefix := "";
If ID > 0 Then
prefix := Copy(S, 1, ID - 1)
Else
Begin
prefix := S;
S := "";
End;
aNode := FindNodeWithText(ParentNode, prefix);
If aNode = Nil Then
Begin
aNode := TreeView1.Items.AddChild(ParentNode, prefix);
End;
AddItem(Lev + 1, aNode, Copy(S, ID + 1, Length(S)));
End;
Var K: Integer;
Begin
CachedStrs := TStringList.Create;
CachedStrs.Duplicates := dupIgnore;
CachedStrs.Sorted := True;
Try
TreeView1.Items.BeginUpdate;
TreeView1.SortType := stNone;
For K := 0 To Strs.Count - 1 Do
AddItem(0, Nil, Strs[K]);
Finally
TreeView1.Items.EndUpdate;
CachedStrs.Free;
End;
End;
Пример использования:
// Построим, например, "дерево каталогов" по трем файлам:
procedure TForm1.Button1Click(Sender: TObject);
Var Strs : TStringList;
begin
Strs := TStringList.Create;
try
Strs.Add("D:\Program Files\Borland\Delphi6\Source\Vcl\Printers.dcu");
Strs.Add("D:\Program Files\Borland\Delphi6\Source\Vcl\WinHelp.dcu");
Strs.Add("C:\WINNTS\system\BORLNDMM.DLL");
FillTreeViewWithFiles(TreeView1,Strs);
finally
Strs.Free;
end;
end;
← →
main (2004-11-19 08:19) [10]Большое спасибо всем!!! Буду разбираться
← →
msguns © (2004-11-19 11:03) [11]>Dimaxx © (19.11.04 00:17) [9]
Ужас !!! Я не об алгоритме, а о стилистике письма: ни отступов, ни комментариев. Где циклы внешние, где внутренние - хрен разберешь ! Лесоповал !!!
Сугубо ИМХО.
← →
Alx2 © (2004-11-19 11:15) [12]>msguns © (19.11.04 11:03) [11]
Вот здесь оригинал.
http://delphibase.endimus.ru/?action=viewfunc&topic=filenames&id=10257
>Dimaxx © (19.11.04 00:17) [9]
Зачем же так?
← →
Dimaxx © (2004-11-19 22:57) [13]Времени не было прямую ссылу искать - инет у меня не на шару... Так что сорри!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c