Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Таблица в TreeView


Автор: hente 5.5.2009, 11:14
Привет всем...
Как всегда со своими проблемами...:((

Есть компонент TreeView необходимо чтобы в узле находилась таблица 
к примеру 3х6 возможна ли такая штука в билдере?
Я конечно понимаю что изврат полный но о-очень надо...

Смотрел на Virtual TreeView чот там такого не нашел... 

Автор: artsb 5.5.2009, 22:31
hente, смотрите в сторону ручного рисования. Т.е. вам придётся рисовать итемы в ручную. Я сам не пробовал, но по идеи, если нужно просто отобразить таблицу, то всё должно получиться  smile 

Автор: A5uKa 6.5.2009, 00:03
Я не понимаю - вопрос о переписании компонента ?
или просто база где каждой ветке соответствует таблица

Автор: hente 6.5.2009, 06:40
artsb,  я пробовал к событию раскрытия списка (нажатия на "+") и сварачиванию(-) добавить 
появление исчезание таблицы...но блин тогда проблема скажем если подряд (или с этступом не важно) идут две таблицы (т.е. два раскрывающихся списка) тогда не знаю как сделать смещение нижней при раскрытии верхней...вот...


A5uKa, да скорее база либо какой либо механизм...боюсь что на переписание компонента уйдет куча времени...

Автор: dumb 6.5.2009, 07:54
http://forum.vingrad.ru/forum/topic-97620/hl/virtualtreeview/index.html

http://www.soft-gems.net/index.php?option=com_content&task=view&id=16&Itemid=33 программ, использующих VT

edit: эм... smile не заметил, что VT упоминался в первом посте темы. smile

Автор: hente 7.5.2009, 06:07
Так я так понял что идей нет...

А редактировать существующие еэлементы можно?
Или только наследованием класса?

Автор: artsb 7.5.2009, 08:31
hente, почему идей нет? Смотри выше. smile
Цитата(hente @  6.5.2009,  06:40 Найти цитируемый пост)
я пробовал к событию раскрытия списка (нажатия на "+") и сварачиванию(-) добавить 
появление исчезание таблицы...но блин тогда проблема скажем если подряд (или с этступом не важно) идут две таблицы (т.е. два раскрывающихся списка) тогда не знаю как сделать смещение нижней при раскрытии верхней...вот...

Надо написать функцию CustomDrawItem.
Вы, кстати, хоть выложите скриншот того что нужно, чтобы стало понятнее.

Автор: hente 7.5.2009, 11:05
Вот примерно то что нужно....
http://ipicture.ru/


А можно про функцию CustomDrawItem по подробней....если можно:((

Автор: artsb 7.5.2009, 12:19
hente, так вам нужно StringGrid вывести, в котором можно редактировать строки? Или просто текст оформленный в таблице? Если первое, то придётся сильно помучаться smile

Автор: hente 7.5.2009, 12:46
Я себе это представляю следующим образом:
StringGrid вставить в TreeView (даже скорее поверх него чтобы отображался) и в свойство Data записать указатель на StringGrid...
Но тогда проблема как я уже говорил в координации такой таблицы...

Хорошо было бы вставить в сам TreeView таблицу но тогда я так понимаю надо коверкать сам компонент TreeView чего я пока даже не знаю как сделать...

Смысл в том чтобы в узле хранилась таблица... 


Цитата

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


В принципе ровно лижбы у пользователя было ощущение что он работает именно с таблицей в узле!!!

Автор: artsb 7.5.2009, 22:24
hente, ответьте плиз на вопрос: пользователю нужно предоставить возможность редактировать данные в этой таблице или эту таблицу можно сделать в виде картинки?

Автор: hente 8.5.2009, 05:33
Редоктировать конечно надо...собсно ради этого все и делается.... :((((((((

Автор: Artemon 8.5.2009, 10:57
hente, а тебе не подойдет такой вариант:

Отображается дерево в TTreeView, если делаем двойной клик по его листу, то появляется форма без границ, на которой находится GridView.

Автор: artsb 8.5.2009, 11:17
Цитата(Artemon @  8.5.2009,  10:57 Найти цитируемый пост)
Отображается дерево в TTreeView, если делаем двойной клик по его листу, то появляется форма без границ, на которой находится GridView. 

Или может вынести всё это дело на отдельную форму? А то я чувствую, hente намучаетесь вы с TreeView...

Автор: hente 8.5.2009, 12:11
Цитата

Или может вынести всё это дело на отдельную форму? А то я чувствую, hente намучаетесь вы с TreeView...


Изменение таблицы с другой формы уже предлагал...сказали нет, надо все в куче...(Можно конечно сказать что все!!!! ребята по другому не льзя но эт не мой подход....)

Цитата

Отображается дерево в TTreeView, если делаем двойной клик по его листу, то появляется форма без границ, на которой находится GridView.


Собсно зачем тогда выносить в другю форму если можно отрозить таблицу поверх TreeView... (собсно в скриншоте я так и сделал)Но тогда проблема как я уже говорил в координации такой таблицы...т.е. места нахождения различных таблиц при раскрытии/сворачивании выше стоящих узлов...

Автор: Artemon 8.5.2009, 12:45
Вот ваш вопрос:

Цитата

Собсно зачем тогда выносить в другю форму если можно отрозить таблицу поверх TreeView... 



Вот ответ на ваш вопрос:

Цитата

Но тогда проблема как я уже говорил в координации такой таблицы...


Именно по этим причинам я и предложил вам использовать отдельную форму.
Но не просто форму, а форму без каких либо границ, на которой будет лежать Grid. 
Вся эта конструкция будет выглядеть как будто при шелче у вас появляется Один грид.
Ктомуже при таком подходе форму с гридом, можно сделать полупрозрачными и поэтому будем видеть что под гридом.

Автор: hente 14.5.2009, 08:56
Спасиб за советы...Пока проблему не решил но появилась немного другая бредовая идея как все это реализовать как чот более осмысленное родится в обяз выложу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)