Поиск:

Ответ в темуСоздание новой темы Создание опроса
> папки и подкаталоги в TreeView 
:(
    Опции темы
Domain
  Дата 1.4.2010, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Всем привет. Нужно в  TreeView отобразить папки и подкаталоги чтобы выглядело примерно так:
Dir1
     -dir1.1
     -dir1.2
     -dir1.3
              --dir1.3.1
              --dir1.3.2
              --dir1.3.3
Dir2
     -dir2.1
     -dir2.2
     -dir2.3
              --dir2.3.1
              --dir2.3.2
              --dir2.3.3

и т.д. Подскажите пожалуйста как это можно реализовать.

Добавлено через 3 минуты и 28 секунд
И по нажатию на определенную папку получать ее путь. например если кликаем на --dir1.3.2 то получаем примерно C:\Dir1\dir1.3\dir1.3.2
            
PM MAIL   Вверх
DCamer
Дата 2.4.2010, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 29.1.2010

Репутация: нет
Всего: нет



Цитата(Domain @  2.4.2010,  00:51 Найти цитируемый пост)
И по нажатию на определенную папку получать ее путь.

И где путь отображаться должен?
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 2.4.2010, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



да не важно. например в edit или еще гденить. И еще такой вопрос, можно ли как нибудь в TreeView напротив каждого каталога сделать что-то типа checkbox?
PM MAIL   Вверх
Domain
Дата 2.4.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Ну может кто подскажет кто как мне вывести подкаталоги в заданной папке....
PM MAIL   Вверх
xvr
Дата 2.4.2010, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(Domain @  2.4.2010,  10:55 Найти цитируемый пост)
Ну может кто подскажет кто как мне вывести подкаталоги в заданной папке.... 
Отсканировать папку и добавить все, что найдется к списку. См. FindFirst и FindNext из SysUtils


PM MAIL   Вверх
Domain
Дата 2.4.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



 smile  иБОЯ пробовал но ничего не вышло.
Код

TStringList * __fastcall TForm1::GetSubDirs(AnsiString RootDir)
{

 TStringList *Result = NULL;

 if (DirectoryExists(RootDir))
 {
   TSearchRec sr;
   AnsiString  MaskNameString;

   Result = new TStringList();
   Result->Clear();
   Result->Append(RootDir);
   
   for (int i = 0; i < Result->Count; i++)
   {
    MaskNameString = Result->Strings[i] + "*.*";
     

     for (int j = 0;;j++)
     {
       if (!j)
       {
         if (FindFirst(MaskNameString, faAnyFile, sr))
         {
           FindClose(sr);
           break;
         }
       }
       else
       {
         if (FindNext(sr))
         {
           FindClose(sr);
           break;
         }
       }


       if(sr.Attr&faDirectory)
       {
         if((sr.Name != ".") && (sr.Name != ".."))
         {
           Result->Append(Result->Strings[i] + sr.Name);
         }
       }
     }  
   }

 
   Result->Delete(0);
 }


Выводит сначала все нормально, а потом еще и лажу всякую. вот как то так:

D:\Film\fun
D:\Film\metal
D:\Film\ot
D:\Film\system
D:\Film\avatar 2
D:\Film\funfun
D:\Film\metalmetal
D:\Film\otot
D:\Film\systemsystem
D:\Film\avatar 2avatar 2

то есть подкаталоги один раз нормально а потом повторяет имена папок  smile . Как быть? Выручайте))))   
PM MAIL   Вверх
xvr
Дата 2.4.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Строка 17 должна быть
Код

MaskNameString = Result->Strings[i] + "\\*.*";

Строка 44:
Код

Result->Append(Result->Strings[i] + "\\"+ sr.Name);

PM MAIL   Вверх
borisbn
Дата 2.4.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Domain, а у тебя в задаче было: "... без использования рекурсии" ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Domain
Дата 2.4.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



вообще то желательно. а как переписать код правильно?

Добавлено @ 20:06
не так она вроде как и работает рекурсивно. хм... теперь осталось все это дело грамотно распределить в TreeView. 
У меня все еще пару вопросов осталось. 
1. как мне например в TreeView по нажатию на определенную папку получать ее путь. например если кликаем на --dir1.3.2 то получаем примерно C:\Dir1\dir1.3\dir1.3.2 ???
2. Можно ли как нибудь поместить checkbox в TreeView ?

Это сообщение отредактировал(а) Domain - 2.4.2010, 20:14
PM MAIL   Вверх
DCamer
Дата 2.4.2010, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 29.1.2010

Репутация: нет
Всего: нет



Цитата(Domain @  2.4.2010,  20:58 Найти цитируемый пост)
2. Можно ли как нибудь поместить checkbox в TreeView ?

Переписав компонент под свои нужды  smile 
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 2.4.2010, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



а что насчет первого вопроса?
PM MAIL   Вверх
DCamer
Дата 2.4.2010, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 29.1.2010

Репутация: нет
Всего: нет



Domain, про первую не знаю, а второе можно организовать компонентой VirtualTreeview
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 2.4.2010, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Цитата(DCamer @ 2.4.2010,  21:21)
Domain, про первую не знаю, а второе можно организовать компонентой VirtualTreeview

а подробнее?
PM MAIL   Вверх
DCamer
Дата 2.4.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 29.1.2010

Репутация: нет
Всего: нет



Domain, устанавливаешь с сайта компонент (в списке первый), и в свойства этого компонента есть Checked, и появляются те самые "флажки"
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 2.4.2010, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Цитата(DCamer @ 2.4.2010,  22:50)
Domain, устанавливаешь с сайта компонент (в списке первый), и в свойства этого компонента есть Checked, и появляются те самые "флажки"

и он по свойствам такой же как TreeView?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1105 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.