Поиск:

Ответ в темуСоздание новой темы Создание опроса
> папки и подкаталоги в 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   Вверх
DCamer
Дата 2.4.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


Бывалый
*


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

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



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


Бывалый
*


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

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



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


Бывалый
*


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

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



окей. ставить как всегда?
PM MAIL   Вверх
DCamer
Дата 3.4.2010, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Domain, сначало VirtualTreesC6.bpk - Make, VirtualTreesC6D.bpk - Install, если при установке появится ошибка, то удали справо в Requires файл ThemeManagerC6.bpi
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 3.4.2010, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(DCamer @ 3.4.2010,  00:04)
Domain, сначало VirtualTreesC6.bpk - Make, VirtualTreesC6D.bpk - Install, если при установке появится ошибка, то удали справо в Requires файл ThemeManagerC6.bpi

удалил. потом сделал compile VirtualTreesC6 в процессе появились ошибки:

[Pascal Fatal Error] VirtualTrees.pas(325): File not found: 'ThemeSrv.dcu'
[Linker Fatal Error] Fatal: Unable to open file 'VIRTUALTREES.OBJ'
PM MAIL   Вверх
DCamer
Дата 3.4.2010, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Domain, В Include Path и Library Path укажите пути к \Soft Gems\Virtual Treeview\Source, $(BDS)\Projects\Bpl и $(BDS)\Projects\BPL, последнее также в Package output directory и BPI/LIB output directory
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 3.4.2010, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



сделал... все равно пишет [Linker Fatal Error] Fatal: Unable to open file 'VIRTUALTREES.OBJ' хотя на delphi поставил и все гуд, только там мне он не надо)))

Добавлено через 11 минут и 10 секунд
Include Path где его искать?
PM MAIL   Вверх
Domain
Дата 3.4.2010, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


Бывалый
*


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

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



Цитата(Domain @  3.4.2010,  01:41 Найти цитируемый пост)
Include Path

В настройках, в Path and Directories
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Domain
Дата 5.4.2010, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



блин все перепробовал. выдает мне 

[Pascal Fatal Error] VirtualTrees.pas(325): File not found: 'ThemeSrv.dcu'
[Linker Fatal Error] Fatal: Unable to open file 'VIRTUALTREES.OBJ' 
PM MAIL   Вверх
Rofar
Дата 11.4.2011, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



тажа ошибка((
PM MAIL   Вверх
DCamer
Дата 1.5.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Rofar, установки, таки происходит автоматически, компонента в Virtual Controls.
--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
DCamer
Дата 1.5.2011, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хотя, наверное, уже поздно, но всё же вот:
Код

   if (TreeView1->Selected) {
       Edit1->Text=TreeView1->Selected->Text;
   }
   if (TreeView1->Selected->Parent) {
       Edit1->Text= TreeView1->Selected->Parent->Text + "/" + TreeView1->Selected->Text;
   }
   if (TreeView1->Selected->Level == 2) {
        AnsiString par1 = TreeView1->Selected->Parent->Parent->Text + "/";
        Edit1->Text= par1 + TreeView1->Selected->Parent->Text + "/" + TreeView1->Selected->Text;
   }

--------------------
Нуб!   Windows 7 Ultimate x64, Embarcadero RAD Studio 2010 - C++Builder 2010
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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