Консультация № 21734
03.06.2005, 22:54
0.00 руб.
0 4 4
Вопрос у меня немнога организационный. Дело в том, что я занимался программеньем на Делфях, но в силу объективных причин (2 года в армии) многое подзабылось (как надену портупею всё тупею и тупею). Так что ничего, что буду задавать иногда ламерские (как выражался наш комбат албанские) вопросы.
В частности, сейчас интересует как с помощью компоненты TreeView просмотреть все файлы текущего каталога (а точнее их имена) и получить к ним доступ. А также все файлы подкаталогов (имена и доступ к каталогам самим не нужны).
Ещё раз извиняюсь за ламерский вопрос, но 2 года в армии снижают IQ на 100 если не больше.

Обсуждение

Неизвестный
04.06.2005, 00:45
общий
это ответ
Здравствуйте, Уваров Сергей Васильевич!
Открываешь хелп или msdn и ищешь инфу по FindFirst и FindNext. Например:
var
FindData: TSearchRec;
DirPath: String;
FileAttrs: Integer;
fFinished: Boolean;
begin
fFinished := false;
//extract exact path
DirPath := UpperCase(Application.ExeName);
Delete(DirPath, Pos(‘myexe.EXE‘, DirPath), Length(‘SALOON.EXE‘));
DirPath := DirPath + ‘*.*‘;
//например ищем в папке экзешника
FindFirst(DirPath, FileAttrs, FindData);
while not fFinished do
begin
//добавляем в список все файлы по имени
List.Add(UpperCase(FindData.Name));
if FindNext(FindData) <> 0 then
begin
if GetLastError <> ERROR_NO_MORE_FILES then
ShowMessage(‘Can`t find next file‘);
fFinished := true;
end;
end;
FindClose(FindData);
Если почитать внимательно описание структуры TSearchRec, там можно много интересного найти. Удачи в твоих изысканиях.
давно
Мастер-Эксперт
425
4118
04.06.2005, 12:25
общий
это ответ
Здравствуйте, Уваров Сергей Васильевич!
В Дельфях есть закладка с компонентами для Win 3.1 (типа устаревшие) и на этой закладке есть компоненты:
- TDirectoryListBox - с помощью этого компонента Вы выбираете нужный Вам каталог;
- TFileListBox - с помощью этого компонента Вы выбираете нужный Вам файл.
Более новый (и рекомендуемый к использованию) компонент - TOpenDialog. При вызове его, появляется окошко с файлами и каталогами, в том каталоге, который Вы указали:
OpenDialog.InitialDir:=‘c:\windows‘;
OpenDialog.Execute;
Правда все они работают не в стиле TreeView. :)
На вкладке SAMPLES есть компонент TDirectoryOutLine, он показывает каталоги и подкаталоги в стиле TreeView.
На сайте www.torry.net есть несколько компонентов в стиле Explorer (с исходным кодом), которые как раз работают в стиле TreeView. Скачайте и посмотрите исходники.
Ссылка:
http://www.torry.net/pages.php?id=248
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
04.06.2005, 13:28
общий
это ответ
Здравствуйте, Уваров Сергей Васильевич!
Используй FindFirst , FindNext для поиска файлов!
Все задавай в TSearchRect.
Слушай у тебя такая фамилия как у меня1 в 1.
Если че в ICQ: 77778851
Тока напиши что с RusFAQ
Неизвестный
04.06.2005, 20:49
общий
это ответ
Здравствуйте, Уваров Сергей Васильевич!
В стандартной палитре компонентов Дельфи есть компонент TShellTreeView (обычно на вкладке Samples) или более старый TDirectoryOutline (там же) ну или TDirectoryListBox (вкладка Win 3.1)
пользуйся ими, солдат, будет в десятки раз легче чем просто с TreeView.
Форма ответа