IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Проблема с компонентом TreeView, C++ builder
ninja
сообщение 22.07.2010 17:10
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый день!

Необходимо заполниль дерево с помощью компонента TreeView, имя элемента дерева должно состоять из номеров и имен, т.е. например дерево должно выглядеть следующим образом:

Код
1имя1
2имя2
3имя3
   3.1имя4
   3.2имя5
      3.2.1имя6
4имя7
   4.1имя8


таким образом чтобы и дочерние и родительские элементы имели порядковый номер.
Столкнулся с такой проблемой что нумерация при добавлении дочернего элемента начинается с 0

Родительские элементы нумеруются нормально, а вот с дочерними проблема

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString name, roditelb;
TTreeNode *node;

if (TreeView1->Items->Count == 0) // добавление первого элемента
{
name = "1:";
name += Edit1->Text+":";
name += ComboBox1->Items->Strings[ComboBox1->ItemIndex];
TreeView1->Items->Add(NULL,name);
}
else
{
if (RadioGroup1->ItemIndex == 0) /// добавление родительских элементов
{
name = IntToStr(TreeView1->Items->Count+1)+":";
name += Edit1->Text+":";
name += ComboBox1->Items->Strings[ComboBox1->ItemIndex];
TreeView1->Items->Add(NULL,name);
}

if (RadioGroup1->ItemIndex == 1) /// добавление дочерних элементов
{
selected2++;
name = IntToStr(selected2)+":";
name = Edit1->Text+":";
name += ComboBox1->Items->Strings[ComboBox1->ItemIndex];
TreeView1->Items->AddChild(TreeView1->Selected,name);
}
}
}




Спасибо за помощь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 25.07.2010 21:30
Сообщение #2


Гость






Значит, плохо перевел:

void BuildMenu(TTreeNode *node, TMenuItem *menu)
{
TTreeNode *TVnode = node;
while(TVnode)
{
if(TVnode->HasChildren)
{
TMenuItem *NewSubMenu = new TMenuItem(menu);
NewSubMenu->Caption = TVnode->Text;
BuildMenu(TVnode->getFirstChild(), NewSubMenu);
menu->Add(NewSubMenu);
}
else
{
TMenuItem *NewMenu = new TMenuItem(menu);
NewMenu->Caption = TVnode->Text;
menu->Add(NewMenu);
}
TVnode = TVnode->getNextSibling();
}
}


void __fastcall TForm1::Button3Click(TObject *Sender)
{
TMainMenu *CurrMenu = new TMainMenu(Form1);
BuildMenu(TreeView2->Items->GetFirstNode(), CurrMenu->Items);
Form1->Menu = CurrMenu;
}

только что у меня отработало прекрасно... Только не надо говорить, что это то же самое, хорошо? Это совсем не то же самое smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ninja   Проблема с компонентом TreeView   22.07.2010 17:10
Client   name = IntToStr(selected2)+":"; name = E...   22.07.2010 18:23
ninja   Да действительно опечатка, но это всего лишь добал...   22.07.2010 18:26
Client   присоедини весь проект, а то лень создавать самому...   22.07.2010 18:42
volvo   А дочерние можно нумеровать, используя не selected...   22.07.2010 18:53
ninja   Вот проект: Владимир спасибо Вам огромное все п...   22.07.2010 18:53
ninja   Еще такой вопрос: как реализовать создание пунктов...   22.07.2010 20:00
volvo   Так лень мне Билдер запускать... Дельфи открытая, ...   23.07.2010 0:28
ninja   Владимир спасибо, на делфи все отлично работает, я...   25.07.2010 21:02
volvo   Значит, плохо перевел: void BuildMenu(TTreeNode *...   25.07.2010 21:30
ninja   Да действительно не тоже самое, Вы при объявлении ...   25.07.2010 21:46
volvo   Могли бы... :) Внимательнее надо быть:   25.07.2010 22:37
ninja   мде) что-то я совсем невнимательный ((( спасибо е...   25.07.2010 22:42
ninja   Возникла еще такая проблема: необходимо сделать та...   30.07.2010 19:50
volvo   Глупостями не занимайся... Тебе достаточно только...   31.07.2010 11:34
ninja   В том то и дело, что я хотел сделать чтобы пользов...   31.07.2010 18:23
volvo   И все равно - не вижу проблемы: Ну, выбрал элемент...   31.07.2010 19:27
ninja   Владимир очередной раз говорю Вам огромное спасибо...   31.07.2010 20:01


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 16:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"