Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Внизпереход по узлам в TreeView - какие-то заморочки Найти похожие ветки
← →
malamba (2005-03-06 12:46) [0]Есть дерево со вложенными узлами.
Когда пользуюсь методом GetNext ( причем, все согласно примеру из Delphi) это гадство переходит только по открытым узлам. Если у узла есть дети, но они скрыты ( узел не развернут), то GetNext их обходит стороной.
Как бы организовать переход по все узлам, независимо от их раскрытия?
Методом If ...Items[i]= ..., сразу скажу - не пользуюсь.
← →
MU © (2005-03-06 12:49) [1]покажите код
← →
Ольга (2005-03-06 14:59) [2]for i:=0 to TreeView.Items.Count-1
← →
malamba (2005-03-06 18:17) [3]Ольга, только не это.
На больших списках это жутко тормозит.
Показываю:
tmpNod := MyTreeView.GetFirstNode;
Searching := true;
while (Searching) and (tmpNod <> nil) do
begin
if tmpNod.text = SearchTarget then
begin
Searching := False;
MyTreeView.Selected := tmpNod;
MyTreeView.SetFocus;
end
else
begin
tmpNod := tmpNod.GetNext
end;
end;
← →
MU © (2005-03-06 18:32) [4]что-то подозрительный код
кто такой MyTreeView?
если это TTreeView, то у него не MyTreeView.GetFirstNode;
а есть
MyTreeView.Items.GetFirstNode;
← →
malamba (2005-03-06 19:04) [5]MyTreeView.Items.GetFirstNode;
Разумеется, Items - я писал по памяти. Главное - смысл: получаю первый узел, а затем каждый последующий проверяю на соотвествие.
Но GetNext и не проходит.
← →
MU © (2005-03-06 21:16) [6]у меня (D6) ваш код рааботает
← →
malamba (2005-03-07 15:39) [7]М-м-м, странно.
То есть у Вас несколько узлов уровня 0, у каждого узла 0 - по нескольку узлов уровня 1, и так несколько раз.
И при закрытых узлах уровня 0 GetNext переходит по всем без исключения узлам, независимо от уровня?
Тогда какие настройки treeView ?
← →
MU © (2005-03-07 15:47) [8]выложите кусок из DFM (TreeView) весь
← →
malamba (2005-03-07 16:05) [9]Гм, получится разве что в среду - он остался на работе, а домашняя копия старая.
Если не удасться нарыть это сообщени, пущу новое.
А может быть сразу в мыло, поскольку в этой теме остались только я да Вы.
← →
ShimON © (2005-03-07 16:10) [10]И люди, которые за ней следят...
← →
MU © (2005-03-07 16:39) [11]возьмите новый проект с TreeView и проверьте
или свой старый.
← →
malamba (2005-03-07 17:04) [12]Виноват, тогда сюда и только сюда.
До среды.
← →
malamba (2005-03-14 10:11) [13]Виноват, задержался.
Возвращаясь к напечатанному:
Выкладываю DFM
object TreeViewZayavky: TTreeView
Left = 0
Top = 5
Width = 276
Height = 381
Color = 15268607
Font.Charset = DEFAULT_CHARSET
Font.Color = clNavy
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
HideSelection = False
Images = ImageListTree
Indent = 19
ParentFont = False
ReadOnly = True
TabOrder = 0
OnClick = TreeViewZayavkyClick
OnCustomDrawItem = TreeViewZayavkyCustomDrawItem
OnEnter = TreeViewZayavkyClick
OnExpanding = TreeViewZayavkyExpanding
OnKeyUp = TreeViewZayavkyKeyUp
end
← →
ЮЮ © (2005-03-15 04:18) [14]>Ольга, только не это.
>На больших списках это жутко тормозит.
Удивительно, как TTreeNode.GetNext c дюжиной строк кода может ускорить этот процесс, если последовательнось обхода узовлов аналогична той, что и в
for i := 0 to TreeView.Items.Count - 1
← →
malamba (2005-03-15 10:39) [15]GetNext это вовсе не то, что Items[i]=.
Во всяком случае так говорят в Инете:
http://delphiworld.by.ru/base/treeview_nodes_access.html
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c