Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2015, 14:26   #1
alex_dss
Новичок
Джуниор
 
Регистрация: 09.03.2015
Сообщений: 2
По умолчанию TreeView и дерево каталога

Всё в этом мире уже когда где то происходило, но при всём при этом обращаюсь за помощью.
Задача до боли проста - это вывод каталога диска либо его части в компонент TreeView. Используя собственные знание и интернет практически решена, но структура выводится не в том порядке в каком надо. Если , кому не трудно, укажите нерадивому , то биш мне, ошибку в коде, А ТО ВРЕМЯ ЖМЁТ НЕЩАДНО, ЗАРАНЕЕ БЛАГОДАРЕН

Вот собственно и сам код:
Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

AnsiString Src;
TTreeNode *Node;
AnsiString Dir1;
int n=0;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

}
//---------------------------------------------------------------------------

//

void __fastcall TForm1::Button1Click(TObject *Sender)
{

Dir1 = "D:\\" ;
int n=0;
TreeView1->Items->Add(NULL,Dir1);
Node=Form1->TreeView1->Items->Item[n];
CreateTreeView(Dir1, Node);
}
//---------------------------------------------------------------------------



void __fastcall TForm1::CreateTreeView(AnsiString Dir, TTreeNode *Root)
{
    TSearchRec sr;
    Src = Dir;

    if (FindFirst(Src+"\\*", faAnyFile, sr) == 0)
    {
	do
        {
	    if (sr.Name!=".")
            if (sr.Name!="..")
	    {
               Dir =  Src+"\\"+sr.Name;
               Root = TreeView1->Items->AddChild(Root,sr.Name);
               //
  	      CreateTreeView(Dir, Root);  // РЕКУРСИВНЫЙ ВЫЗОВ
             n++;
	    }

          } while (FindNext(sr) == 0);
    FindClose(sr);
 }
}

Последний раз редактировалось Stilet; 09.03.2015 в 14:52.
alex_dss вне форума Ответить с цитированием
Старый 10.03.2015, 15:15   #2
alex_dss
Новичок
Джуниор
 
Регистрация: 09.03.2015
Сообщений: 2
По умолчанию

Для того чтобы предыдущий код стал хотябы работоспособным, надо в файл Unit1.h добаввить:

void __fastcall CreateTreeView(AnsiString Dir, TTreeNode *Root);

Разобрался сам, тема закрыта

Последний раз редактировалось Stilet; 14.03.2015 в 11:18.
alex_dss вне форума Ответить с цитированием
Старый 13.03.2015, 21:11   #3
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Мне всегда нравятся ТС, которые не приводят решения, просто, видимо, я их не умею готовить...
Сам создал себе трудности и сам решил их по принципу китайской молодежи, опять молодец!
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# TreeView дерево фамилий из базы Таксист Помощь студентам 12 13.12.2014 09:59
Не грузится дерево в TreeView artemavd Общие вопросы Delphi 0 23.04.2012 20:26
загрузить дерево из текстового файла в treeview hunter03 Помощь студентам 2 26.11.2011 15:42
Как связать дерево TreeView с таблицей StringGrid Serebah Общие вопросы Delphi 5 22.12.2010 17:50
обработчики добавления и удаления в дерево (TreeView) kayman Компоненты Delphi 10 08.03.2010 11:17