powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / TreeView
11 сообщений из 11, страница 1 из 1
TreeView
    #32327708
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал TreeView, заполнил его - все нормально, только не пойму почему он не отображает +/- для узлов у которых есть дети (двойной клик при этом работает нормально и в Style сказано их показывать )?

Второе - как заставить все узлы быть expanded по-умолчанию?
...
Рейтинг: 0 / 0
TreeView
    #32327737
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
двойной клик при этом работает нормально и в Style сказано их показывать )?

Кроме Style есть еще LineStyle. Поставь значение 1- tvwRootLines.


Второе - как заставить все узлы быть expanded по-умолчанию?

При заполнении TreeView: TreeView.Nodes(NodeKey).Expanded = .T.
...
Рейтинг: 0 / 0
TreeView
    #32327754
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
большое спасибо!

Теперь у меня есть плюсы и минусы, а вот с expand проблемы

Если я пишу в методы который заполняет дерево в конце
Код: plaintext
1.
2.
3.
	FOR i =  1  TO o.Nodes.Count
		o.Nodes(i).Expanded = .T.
		ENDFOR	

То вылетает ошибка
Код: plaintext
Результат вычисления элемента NODES не является объектом.


А если этот же код но для события OnClick для кнопки - то все нормально
...
Рейтинг: 0 / 0
TreeView
    #32327769
Cyrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем проходить по Nodes второй раз? Можно указать свойство при заполнении:
Код: plaintext
1.
2.
3.
4.
LOCAL oNode
...
oNode=o.Nodes.Add(...)
oNode.Expanded=.T.
oNode.ExpandedImage=...
...
Рейтинг: 0 / 0
TreeView
    #32327775
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, так все заработало - спасибо

P.S> а почему вариант с циклом вызывал ошибку?
...
Рейтинг: 0 / 0
TreeView
    #32327788
Cyrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде код нормальный. Может быть где-нибудь в цикле i менялось ненамеренно?
...
Рейтинг: 0 / 0
TreeView
    #32327798
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в том то и дело что в методе заполнения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT (m.c_alias)

	o = THIS.oleTree.Nodes
	o.Clear
	
	SCAN
		IF EMPTY(ALLTRIM(id_доч_крт))
			oNode = o.add(, 1 ,ALLTRIM(id),ALLTRIM(номер), 0 )
		ELSE
			oNode = o.add(ALLTRIM(id_доч_крт), 4 ,ALLTRIM(id), ALLTRIM(номер), 0 )
		ENDIF
		oNode.Expanded=.T.
	ENDSCAN

	FOR i =  1  TO o.Nodes.Count
		o.Nodes(i).Expanded = .T.
		ENDFOR	


И все - так вот здесь вываливается

А в коде клика
Код: plaintext
1.
2.
3.
4.
o = this.Parent.oleTree
FOR i =  1  TO o.Nodes.Count
	o.Nodes(i).Expanded = .T.
ENDFOR

И все OK
...
Рейтинг: 0 / 0
TreeView
    #32327828
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, есть такой глюк. Обычно возникает при работе в модальной форме. Обойти можно таким образом:

Код: plaintext
1.
2.
3.
4.
LOCAL loNode, lnI
FOR m.lnI =  1  TO ThisForm.OleTree.Nodes.Count
	loNode=ThisForm.OleTree.Nodes(m.lnI)
	loNode.Expanded = .T.
ENDFOR


Если лень заводить дополнительную переменную, то помогает еще такой синтаксис

Код: plaintext
1.
2.
3.
4.
5.
LOCAL lnI
FOR m.lnI =  1  TO ThisForm.OleTree.Nodes.Count
	WITH ThisForm.OleTree.Nodes(m.lnI)
		.Expanded = .T.
	ENDWITH
ENDFOR


Суть в том, чтобы в команде присвоения была только одна точка. Если там возникает вторая точка (т.е. иерархия вложенных объектов), то и возникает данная ошибка.

Видимо какие-то проблемы с адресацией.
...
Рейтинг: 0 / 0
TreeView
    #32327830
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok, спасибо
...
Рейтинг: 0 / 0
TreeView
    #32329014
andrew_Pr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to funikovyuri
у тебя в первом фрагменте кода o = THIS.oleTree.Nodes
а во втором o = this.Parent.oleTree
поэтому когда в первом случае ты пишешь o.Nodes(i).Expanded = .T.
т.е. THIS.oleTree. Nodes.Nodes (i).Expanded = .T. возникает ошибка
...
Рейтинг: 0 / 0
TreeView
    #32329206
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2andrew_Pr

Да действительно - спасибо
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / TreeView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]