![]() |
|
![]() ![]() ![]() |
|
mrKoddy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
У меня на форме лежит TTreeView1.
Пример.Я создаю потомок от TTreeView.
Т.е. этот потомок тоже TTreeView только с доп "свойствами".Переопределенных медотов не будет наверное. TASB у меня будет заполняться.Потом надо информацию из TTreeView1 "перекопировать" в TASB. т.е. заполнить "недостающие ствойства". Вопросы: 1. Как "перекопировать"? По одному свойству копировать как-то не очень хочется. Да и если честно, то я не знаю какие именно надо будет копировать(индексы и уровни тока знаю что надо будет).Посему хотелось бы все скопом перекопировать. 2. Свойство Caption, приведенное выше должно присутствовать в каждом Item'е любого уровня.Куда его вписать? 3. Свойства TASB(родыне и от TTreeView) надо записать в файл. Но записать не текстом, а аброкодаброй.Так можно сделать или все же текстом писать надо будет?(вопрос глупый конечно).Потом прочитать из файла и восстановить дерево. Тоже самое проделать с TTeeView1. PS:TASB на форме не отображается.Мне он там не нужен. Это сообщение отредактировал(а) mrKoddy - 13.6.2005, 22:25 |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Что значит "перекопировать"? Копировать или отнаследовать. Если обеспечить копирование объекта TTree в TASB, то переопределить метод Assign. Если отнаследовать - то стандартно как положени в С++ -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
mrKoddy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
Ну если упростить, то b=a
А можно поподробнее? А как на счет остальных вопросов? |
||||
|
|||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
В общем даже и переопределение не понадобится
С Caption - непонятно. TreeView использует в качестве Item объекты TTreeNode, который имеют свойство Text. Оно имеется независимо от уровня. По третьему вопросу так просто не объяснишь. Для начала вот это прочтите http://bcdev.narod.ru/Articles/Saving_and_..._components.htm -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
mrKoddy |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
Спасибо, попробую.
Ну вот типа Text мне и надо еще пару свойств.
Это я уже читал. Правда пока в подробности не вдавался. |
||||||
|
|||||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Ну тогда Вам потребуется производый класс от TTreeNode как минимум, и возможно свои TTreeNodes и TTreeView ![]() -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
mrKoddy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
Да, проще. Только я все же не понял, как по предложенной выше ссылке сохранять/загружать компонент. Сохранить получилось. А вот загрузить не очень. Загрулил. Но как только я кликаю по ветке, что б раскрылась, у меня сразу AV вылетает. Как я понял из статьи надо что-то сделать перед загрузкой. А вот что и как не понял. |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Смотреть конкретно надо. Так не скажешь, что не так
Вот код создает записывает в файл, а потом создает копию TTreeView рядом с оригиналом
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
mrKoddy |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
У меня на форме TreeView1 уже лежит т.к. я его положил через дизайнер. Наверное поэтому возникает проблема.
Загружается у меня вот так:
Записывается так:
Можно попробовать сделать по аналогии - TreeView1 скрыть(если получиться - удалть, хотя я в этом сомневаюсь). Динамически создать TreeView2 и потом уже
Но мне такое кол-во манипуляций не очень нравиться. ![]() |
||||||
|
|||||||
mrKoddy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
Воспользовался кодом Vyacheslav'a
Разбил его на сохранение и загрузко компанента. Делал почти по спавке:
Сохранение и загрузка проходят нормально. Но вот заполнение структуры не происходит.Т.е. там пусто. Если вместо заполнения структуры написать Cap=PMyRec(NewTree->Selected->Data)->Caption, как советует справка, то происходит AV.Такое ощущение, что дополнительная инфа в файл не сохраняется. Если файл через ТС посмотреть, то можно увидеть только названия двух итемов нулевого уровня(два корня). |
|||
|
||||
chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
извиняюсь что не в тему а можн по подробнее про свойство data |
||||
|
|||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
А с чего Вы взяли, что Data сохраняться? Это тип void * и что там может лежать в конкретный момент известно только одному богу и ... программисту. К сожалению, создание своего класса-наследника от TTreeNode, для решения данной проблемы бесполезно, так как методы
определены как невиртуальные плюс еще и размещены в секции private. Так что проще пойти по пути отделения информации и интерфейса и сохранять и восстаналивать информацию по дереву отдельно от TTreeView -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
mrKoddy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
Все зависит от структуры дерева. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |