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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ninja
сообщение 22.07.2010 20:00
Сообщение #2


Пионер
**

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

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


Еще такой вопрос: как реализовать создание пунктов меню на основе полученного дерева? т.е Мне необходимо создать, используя компонент MainMenu, пункты меню, учитывая все уровни вложенности полученного дерева, не могу понять как мне это сделать.

получилось пока следующее:

TMenuItem *Menu;

for (i = 0; i < TreeView1->Items->Count; i++)
{
Menu = new TMenuItem(0);
Menu->Caption = "Пункт меню " + IntToStr(i+1);
MainMenu1->Items->Add(Menu);
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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


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

 



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