Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как восстановить развертку TTreeView?


@!!ex ©   (2009-04-18 08:10:00) 

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


@!!ex   (2009-04-18 10:01:00) [1]

В итоге сделал вот так:

var
 Expanded:array of string;
begin
 for i := 0 to ObjectsTreeView.Items.Count - 1 do
   if ObjectsTreeView.Items[i].Expanded then begin
     SetLength(Expanded,Length(Expanded)+1);
     Expanded[Length(Expanded)-1]:=ObjectsTreeView.Items[i].Text;
   end;

 //обновление списка

 for i := 0 to ObjectsTreeView.Items.Count - 1 do
   for j := 0 to Length(Expanded) - 1 do
     if ObjectsTreeView.Items[i].Text=Expanded[j] then
       ObjectsTreeView.Items[i].Expand(false);
end;


@!!ex   (2009-04-18 09:33:00) [2]

Очищается и полностью строится заново.


MonoLife   (2009-04-18 09:26:00) [3]

А как оно обновляется? И почему оно обновляется целиком?


Наверх

Титульная страница Поиск, карта сайта Написать письмо