Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VirtualTree & C++ Builder, Помогите с деревом 
V
    Опции темы
Evgesha
Дата 26.9.2012, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как создать структуру. 
надо примерно так

книга1
   часть1
       глава1
       глава2
    часть2  
       глава1
       глава2 
книга2
   часть1
       глава1
       глава2
    часть2  
       глава1
       глава2

Не соображу как заполнить дерево данными из переменных
Зарание спасибо

Код


    for (int i=0; i<=10; i++)
            {
             SchienenName[i];

             RootNode=VirtualStringTree1->AddChild(NULL);

             ChildNode=VirtualStringTree1->InsertNode(RootNode,amAddChildFirst);
             ChildNode=VirtualStringTree1->InsertNode(ChildNode,amAddChildFirst);

            }

--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Riviero
Дата 27.9.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Миллион раз обсуждалось, пользуйся поиском 
вот например
PM MAIL   Вверх
Evgesha
Дата 27.9.2012, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Миллион раз обсуждалось, пользуйся поиском 


Согласен, но примера кода na С++ Builder так и не нашел
Помогите пожалуйста

Это сообщение отредактировал(а) Evgesha - 27.9.2012, 22:15
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Evgesha
Дата 28.9.2012, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



напишите как поменат техт в Children Node
не могу разобратса
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
artsb
Дата 28.9.2012, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



1. Найти нужного Child'а
2. Child->Caption = "blah-blah-blah";


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Evgesha
Дата 1.10.2012, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



как дат название ноду част1 и глава1
ПОомогите
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
artsb
Дата 1.10.2012, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Вот, ковыряйтесь:
http://devdelphi.ru/?p=230
http://devdelphi.ru/?tag=virtualstringtree

Правда там на Delphi. Но думаю, что это не проблема.

ЗЫ а мне лень ставить этот компонент и разбираться с ним )


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Evgesha
Дата 1.10.2012, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вот именно что проблема
за сылки спасибо но уже изучил
не получается дочерниму ноду техт влепит, берет все время техт от родителского

пожайлуста дайте кусок кода  smile  smile  smile 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
artsb
Дата 1.10.2012, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



По-моему, в статье по ссылке всё достаточно подробно расписано. Что конкретно не получается у вас? Где код, который не так работает?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Evgesha
Дата 1.10.2012, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

    for (int i=0; i<=9; i++)
            {
             SchienenName[i]=Form02_SchieneSchraube->CB_Schienenprofil->Items->operator [](i+1);

             SNode = VST->AddChild(NULL);
             NewSchiene = (TVTNodeData *)VST->GetNodeData(SNode);
             NewSchiene->Index = i;
             NewSchiene->SCaption = SchienenName[i];

             ANode = VST->AddChild(SNode);
             NewAnker = (TVTNodeData *)VST->GetNodeData(ANode);
             NewAnker->Index = i+10;
             NewAnker->ACaption = SchienenAnker;
            }

void __fastcall TFormErgebnis::VSTGetText(TBaseVirtualTree *Sender, PVirtualNode Node,
                               TColumnIndex Column, TVSTTextType TextType, UnicodeString &CellText)
{

             NewSchiene = (TVTNodeData *)VST->GetNodeData(SNode);
             NewAnker = (TVTNodeData *)VST->GetNodeData(ANode);



/*

switch (Column)
            {
             case 0: CellText = SchienenName[Node->Index];
             break;
             case 1: CellText = "22222222222222";
             break;
             case 2: CellText = "33333333333333";
             break;
            }
*/
}


Это сообщение отредактировал(а) Evgesha - 1.10.2012, 22:33
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
artsb
Дата 1.10.2012, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Так и не понял, откуда выдран этот кусок...
Судя по всему, вы не внимательно прочитали информацию о событии OnGetText. Обратите на него внимание.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Evgesha
Дата 1.10.2012, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



выдран из моей проги
инфу прочитал так и не понял, наверно уже туплу

 smile 

Это сообщение отредактировал(а) Evgesha - 1.10.2012, 22:52
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
Riviero
Дата 2.10.2012, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

// Одна структура на все дерево (НЕ отдельно на парентов и чилдренов)
typedef struct
{
    String Name;
    int Count;
}NodeRec, *ptrNodeRec;

//---------------------------------------------------------------------------
//        Определяешь размер ноды
void __fastcall TForm1::VirtualStringTree1GetNodeDataSize(
      TBaseVirtualTree *Sender, int &NodeDataSize)
{
    NodeDataSize = sizeof(NodeRec);
}
//---------------------------------------------------------------------------
//        Отображаешь дерево
void __fastcall TForm1::VirtualStringTree1GetText(TBaseVirtualTree *Sender,
      PVirtualNode Node, TColumnIndex Column, TVSTTextType TextType,
      WideString &CellText)
{
    ptrNodeRec Rec = (NodeRec*)Sender->GetNodeData(Node);
    switch (Column) {
        case 0 : CellText = Rec->Name; break;
        case 1 : CellText = (String)Rec->Count; break;
    }
}
//---------------------------------------------------------------------------
//        Заполняешь дерево
void TForm1::FillTable()
{
    ptrNodeRec parentRec, childRec;
    PVirtualNode Child, Parent;
    for (int i = 0; i < 10; i++) {
        Parent = VirtualStringTree1->AddChild(0);
        parentRec = (NodeRec*)VirtualStringTree1->GetNodeData(Parent);
        parentRec->Name = "Parent";
        for (int j = 0; j < 10; j++) {
            Child = VirtualStringTree1->AddChild(Parent);
            childRec = (NodeRec*)VirtualStringTree1->GetNodeData(Child);
            childRec->Name = "Child";
        }
        parentRec->Count =    Parent->ChildCount;
    }

}


Это сообщение отредактировал(а) Riviero - 3.10.2012, 08:12
PM MAIL   Вверх
artsb
Дата 2.10.2012, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Вот, собственно, Riviero, вам перевёл то что в статье на C++. Теперь понятно?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Evgesha
Дата 2.10.2012, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да тепер все понятно все заработало  smile  smile .
Спасибо всем за содействие  smile .
Отделное спасибо Riviero за пример  smile .


--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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