Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2009, 08:21
Shantal Shantal вне форума
Прохожий
 
Регистрация: 03.07.2009
Сообщения: 2
Репутация: 10
По умолчанию Treeview ini

Добрый день.
Имеется форма с деревом. хотела бы запоминать какие узлы были открытыми при закрытии формы и при ее открытии востанавливать состояние открытости/запкрытости узло. Как сохранить все настройки в *.ini
Ответить с цитированием
  #2  
Старый 13.10.2009, 12:50
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Наверное обходом всех узлов и записью их состояния. А вот записывать можно по разному - тут полет фантазии.
Например имеем такое дерево:
+-1
| |-1.1
| +-1.2
| +-1.2.1
+-2
| +-2.1
| +-2.1.1
+-3
Можно попробовать записать состояние по столбцам считая 1-столбцом 1 уровень, 2-столбцом второй и т.д. и состояние узла 0-свернут и 1-развернут (честно говоря так не пробовал, но вроде должно работать)
Получим:
1-110
2-011
3-11
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 13.10.2009, 16:16
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,037
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А не проще просто пройти по узлам и сохранить открытые.

Код:
var
  Ini : TIniFile;
...
  For I := 0 To tvTree.Items.Count-1 Do
    If tvTree.Items[i].Expanded Then
      Ini.WriteBool('Section',tvTree.Items[i].Text,True);
...

PS. Код писал по памяти - с деревьями давно не работал. Может там не Text, а Caption и не Items, а Nodes. но это не меняет принципа.

PPS. А вот восстанавливать состояние дерева интереснее. Надо прочитать список имен узлов в список строк, потом идти по этому списку, получать сохраненное значение, находить узел с нужным именем и раскрывать его.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter