![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в TreeView сделать выделенным NODE по его StateIndex-у? [D7, XP]
Ruslan777 © (2009-01-22 10:31:00)Добрый день ребята!
Как в TreeView сделать выделенным NODE по его StateIndex-у?
Подскажите!
Ruslan777 (2009-01-22 14:57:00) [1]
> А в чём проблема? Ну не хочешь тупым перебором - строй отдельный
> сортированный список StateIndex-ов, где каждому элементу
> будет поставлен в соответствие нод. И ищи по нему потом
> каким-нибудь половинным делением.
Понял!
Спасибо огромное!
Ega23 (2009-01-22 11:50:00) [2]
> А вот перебор меня смущает! ((
А в чём проблема? Ну не хочешь тупым перебором - строй отдельный сортированный список StateIndex-ов, где каждому элементу будет поставлен в соответствие нод. И ищи по нему потом каким-нибудь половинным делением.
Только:
1. Это геморно.
2. В случае потери парента дерево сохраняет все свои ноды в стрим и при восстановлении парента - сериализует их из стрима. Соответственно, тебе каждый раз нужно список свой перестраивать будет.
MsGuns (2009-01-22 11:37:00) [3]А в чем собственно проблема ?
Ruslan777 (2009-01-22 10:55:00) [4]
> 3. Один фиг так делать нельзя.
Вообще то уменя каждому nod-у присвоен уникальный StateIndex....
А вот перебор меня смущает! ((
Ega23 (2009-01-22 10:51:00) [5]1. У каждого нода есть одно значение StateIndex, но у каждого значения STateIndex может быть много нодов.
2. Если всё-же очень хочется, то:
for i:=0 to TreeView.Items.Count-1 do
if TreeView.Items[i].StateIndex = Value then
begin
TreeView.Selected := TreeView.Items[i];
Break;
end;
3. Один фиг так делать нельзя.