forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Delphi (http://forum.boolean.name/forumdisplay.php?f=66)
-   -   Помогите в одном вопросе (http://forum.boolean.name/showthread.php?t=12915)

Жека 20.09.2010 14:35

Ответ: Помогите в одном вопросе
 
Я на c++builder'е делал подобное "дерево", "физически" структура хранилась в моём формате (пара классов вроде всего понадобилась), а в TreeView только отображение. При этом каждому узлу можно задавать какие вздумается "свойства".:)

На счёт привязки к папкам - у меня был параметр - глубина вложенности узла. С его помощью можно создать структуру папок.

Псевдокод:

Код:

//tree - наш объект дерево

//получаем максимальную вложенность
int deepMax = tree.getDeepMax();
//проходим по всем уровням
for(int k=0;k<deepMax;++k)
{
    //создаём каталоги для каждого уровня
    createFolders(k);
}


void createFolders(int deepIndex)
{
    Node node;
    for(int k=0;k<tree.getNodeCount();++k)
    {
        node = tree.getNodeAt(k);
        if(node.getDeepIndex() == deepIndex)
        {
            //функция создания папки на винте
            CreateDir(node.getDir());
        }
    }
}
   
//для узла путь к папке можно задавать в момент его создания
String updateDir()
{
    dir = "";
    if(parent != 0)
        dir = parent.getDir()+"/";
    dir += text;
}

Таким образом сначала создаются родительские каталоги, потом дочерние вглубь.:)


Часовой пояс GMT +4, время: 00:49.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot