![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прорисовка в TTreeView [D7, WinXP]
Vilux © (2004-07-26 10:05:00)В дерево добавляется много элементов и тормозит это дело. Как бы мне отключить прорисовку элементов, пока дерево не заполнится, а потом включить?
Экспериментатор (2004-07-26 14:43:00) [1]Поищи TVirtualTreeView
оно намного быстрее
savva (2004-07-26 13:18:00) [2]единственно немогу тебе подсказать по поводу ItemId - потому как не видел тех специфичных компонентов, которые ты используешь
savva (2004-07-26 13:12:00) [3]2 минуты работы
procedure SetHasChildren(Handle : THandle;Value: Boolean);
var
Item: TTVItem;
begin
with Item do
begin
mask := TVIF_CHILDREN;
hItem := ItemId;
cChildren := Ord(Value);
end;
TreeView_SetItem(Handle, Item);
end;
вызов
SetHasChildren(YourNode.Handle, true)- покажет крестик
savva (2004-07-26 13:08:00) [4]а подглядеть исходники VCL коран не дозволяет?
Vilux (2004-07-26 13:02:00) [5]Я использую TElTree, так там нельзя менять значение HasChildern :( только можно читать
MetalFan (2004-07-26 12:39:00) [6]а, ну да! это св-во у TTreeNode
MetalFan (2004-07-26 12:38:00) [7]
property HasChildren: Boolean;
Description
HasChildren is True if the node has subnodes, or False if the node has no subnodes. If ShowButtons of the tree view is True, and HasChildren is True, a plus (+) button will appear to the left of the node when it is collapsed, and a minus (-) button will appear when the node is expanded.
Note: If a node has no children, setting HasChildren to True will show a (+) plus button, but will not add any child nodes and the node cannot be expanded.
усе понятно?
Vilux (2004-07-26 12:25:00) [8]Как-то это некрасиво получается... неужели нет более легкого пути?
KSergey (2004-07-26 12:21:00) [9]Подозреваю, что надо в нем создать произвольный дочерний итем, но как-то указать, что это не реальные данные, что их надо еще закачать
Vilux (2004-07-26 12:19:00) [10]Возник еще такой вопрос, как мне принудительно нарисовать значок плюсика у итема, чтобы он мог раскрываться?
Vilux (2004-07-26 10:59:00) [11]Спасибо, так наверное и сделаю, буду динамически заполнять.
KSergey (2004-07-26 10:12:00) [12]> [2] Vlad © (26.07.04 10:08)
Само по себе дерево заполняется достаточно быстро (с учетом [1])
Ваш совет актуален только в случае, когда сами данные для заполнения доставать сравнительно долго.
Vlad (2004-07-26 10:08:00) [13]
> Vilux © (26.07.04 10:05)
Не заполняй сразу все дерево, а только "верхние" узлы. Остальные заполняй динамически, при раскрытии узла, т.е. нажатии на (+)
KSergey (2004-07-26 10:07:00) [14]Items.BeginUpdate/EndUpdate