Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Gisele
1 / 1 / 3
Регистрация: 04.11.2010
Сообщений: 85
1

Идентификация веток в TreeView

31.05.2011, 09:00. Просмотров 1074. Ответов 1
Метки нет (Все метки)

В БД есть 2 таблицы-вопросов и ответов. в TreeView отображаются номера вопросов(типа вопрос1, вопрос2 и тд).Нужно, чтобы при нажатии на вопрос1 в TreeView в поле мемо выводился текст вопроса.
Единственное, что не понятно, как идентифицировать ветки TreeView? т.к. мне нужно передать номер вопроса в запрос как параметр. Есть ли какое-то свойство у веток типа как Tag у компонентов?
Все ветки в TreeView создавала как родительские.
Спасибо всем ответившим..
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 09:00
Ответы с готовыми решениями:

Динамическое удаление веток TreeView
Делаю аналог комнат в RC/TC и тому подобным программам, речь идет конкретно об...

Не выводится информация из определенных веток реестра
Доброго времени. Прошу помощи. Проблема заключается с выводом информации из...

Динамическая идентификация класса
Здравствуйте! Пишу на C++ Builder XE. Можно ли как-то динамически...

Идентификация файлов Word
Доброго времени суток, столкнулся с такой проблемой, есть необходимости...

CategoryButtons, идентификация категории
В событии cBButtonClicked появляется возможность узнать ID нажатой кнопки. Одна...

1
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
31.05.2011, 12:05 2
Лучший ответ Сообщение было отмечено Gisele как решение

Решение

Обычно "деревья" в информатике существуют не сами по себе, а лишь как средство хранения и представления (отображения) иерархических данных. Поэтому обычно при построении деревьев программы используют св-во узлов дерева TTreeNode.Data, куда помещают указатель на объект (структуру, класс, файл, интефейс, метод,- все, что угодно). При задействовании пользователем некоторого узла дерева (например двойной клик мышью) программа определяет сначала "кликнутый" узел, а по нему - объект (св-во Data). Далее преобразование типа и делается все, что надо с этим объектом

Добавлено через 16 минут
В Вашем случае можно в св-во Text помещать название вопроса (тему ?), а в Data наприме адрес такой структуры

C++
1
2
3
4
5
6
7
8
9
10
typedef struct
{
     AnsiString QuestFullText;
     AnsiString QuestShortAnswer;
     AnsiString SQLSelectFullQuest;
     TDateTime QuestWasChanged;
} 
     RQuestRecord;
 
typedef RQuestRecord* PQuestRecord
В коде, где считываются из БД и заносятся в дерево данные анкеты (или что там у Вас), пишите для только что созданной и добавленной в дерево ноды:

C++
1
2
3
4
5
6
7
8
9
10
11
     RQuestRecord *RQR;
     PQuestRecord PQR;
   
     RQR = New RQuestRecord;
     PQR = RQR;
     
     RQR->QuestFullText = DataSet1.FieldByName("Полный текст")->AsString;
     RQR->QuestShortAnswer = ...;
         ....
 
     TreeNode->Data = PQR;
В событии клика пишите:
C++
1
2
3
     PQuestRecord PQR;
     PQR :=  (PQuestRecord*) TreeNode->Data;
     ShowMessage(PQR->QuestFullText);
Добавлено через 2 минуты
Да, важно ! В с++ нет сборщика мусора, поэтому перед перегрузкой дерева или по завршению программы не забудьте "пробежаться" по всем узлам и поосвобождать все рекорды.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 12:05

Идентификация пользователя на интерфейсе USB
Помогите с заданием.Разработать программу которая будет генерировать на флеш...

Копировать тект дочерних веток treeview при нажатии на главную
Привет всем, у меня вопрос по treeview, может кто знает как сделать чтоб можно...

Хочу сделать, чтобы TreeView не выглядел как дерево, а как в редакторах кодов одной линией без веток
Хочу сделать, чтобы TreeView не выглядел как дерево, а как в редакторах кодов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru