Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
10-1067933225
dmuv
2003-11-04 11:07
2004.12.05
Что такое RepositoryId в CorbaConnection ?


3-1099658985
Mamed
2004-11-05 15:49
2004.12.05
Acces OLE Object and delphi image


3-1099568570
SergP
2004-11-04 14:42
2004.12.05
DBGRID. Узнать State для остальных ячеек строки в DrawColumnCell


1-1100755828
main
2004-11-18 08:30
2004.12.05
Файловая система и TREEVIEW


4-1098437577
Slonco
2004-10-22 13:32
2004.12.05
Как сделать чтобы форма получила фокус и стала поверх другх окон?





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