powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с treeview
6 сообщений из 6, страница 1 из 1
Помогите с treeview
    #32793101
Spavel_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При построениии делаю This.LockScreen = .T.
OneLavel_="One"
TwoLavel_="Two"
o = THISFORM.oleTree.Nodes
oleTree = THISFORM.oleTree
o.Clear
SELECT QProfilesFields
SCAN
idprrofilesf=QProfilesFields.id
KeyLabel_=OneLavel_+ALLTRIM(STR(idprrofilesf))
Caption_=ALLTRIM(QProfilesFields.Caption)
IF QProfilesFields.ShowReg=.F.
o.ADD(,1,"&KeyLabel_","&Caption_",1)
oleTree.Nodes("&KeyLabel_").Selected=.F.
oleTree.Nodes("&KeyLabel_").SelectedImage=1
ELSE
o.ADD(,1,"&KeyLabel_","&Caption_",2)
oleTree.Nodes("&KeyLabel_").Selected=.T.
oleTree.Nodes("&KeyLabel_").SelectedImage=2
ENDIF
ENDSCAN
This.LockScreen = .F.

Пояснение к коду
в таблице QProfilesFields есть две группы ShowReg=T/F
Пытаюсь создать Nodes где одни имеют картинку "1" и Selected=.F. а другие "2" и Selected=.T.
Делает.
При KeyPress treeview делаю
LPARAMETERS keyascii
key_=This.SelectedItem.Key
IF keyascii=32
IF this.Nodes(key_).Selected= .F.
MESSAGEBOX("Не помечено")
ELSE
MESSAGEBOX("Помечено")
ENDIF
ENDIF

Сранно но всегда Selected= .T.(точно знаю что Selected берёт у правельного Nodes) в чем дело непойму
Помогите пожалуйста
...
Рейтинг: 0 / 0
Помогите с treeview
    #32793160
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свойство Selected=.T. означает, что данный узел выбран. Как следствие, свойство Selected=.T. может иметь только один узел во всем дереве.

Помечать несколько узлов не имеет смысла. Свойство Selected=.T. останется только у последнего. У всех остальных оно будет автоматически сброшено в .F.

Когда происходит "клик" на узел ил ипереход на него при помощи клавиатуры, то узел также меняет свойство Selected на .T.

Реакцию на выбор узла надо прописывать в событии NodeClick, а не KeyPress.

Если необходимо как-то выделить несколько узлов (не с помощью картинок), то это можно сделать либо используя выделенный шрифт:

oleTree.Nodes(m.KeyLabel_).bold = .T.

Либо изменив цвет шрифта или цвет фона для узла

oleTree.Nodes(m.KeyLabel_).ForeColor = RGB(255,0,0)
oleTree.Nodes(m.KeyLabel_).BackColor = RGB(0,0,255)

Хотя непонятно, почему бы тебе просто не считывать индекс присвоенной картинки

?oleTree.Nodes(m.KeyLabel_).image

Кстати, для адерсации к узлу вовсе не надо использовать макроподстановку. Достаточно просто писать имя переменной.
...
Рейтинг: 0 / 0
Помогите с treeview
    #32794694
Spavel_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oleTree.Nodes(m.KeyLabel_).image
Да вот это будет кстаки Спасибо.
...
Рейтинг: 0 / 0
Помогите с treeview
    #32798674
Spavel_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите загвоздка.
?oleTree.Nodes(m.KeyLabel_).image Это помогло но не отвсех болезней.
Спрашиваю у свойства image 1 или 2 и потом меняю картинку. А потом происходит слеущее и в тоже время непонятное: Когда стоишь на Nodes у которого поменял картинку с 1 на 2. Вижу картинку 1. Ухожу с него вижу картинку 2. Вожвращаюсь на него вижу картинку 1.
Не знаю что и делать.
...
Рейтинг: 0 / 0
Помогите с treeview
    #32798805
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У узла есть 3 свойства связанный с картинками

Nodes(Key|Index). image - картинка на НЕ выбранном узле (5 параметр в методе Nodes.Add())

Nodes(Key|Index). SelectedImage - картинка, отображаемая у узла, когда указатель стоит именно на нем (6 параметр в методе Nodes.Add())

Nodes(Key|Index). ExpandedImage - картинка, отображаемая у узла, когда узел раскрывается (Expanded=.T.). В методе Nodes.Add() нет соостветствующего параметра. Надо задавать для каждого узла отдельно.

Т.е. ты изменил только свойство Image, но не изменил SelectedImage. Отсюда и такой эффект.

Если ты не хочешь, чтобы картинка в выбранном узле отличалась от картинки в НЕ выбранном, то надо просто НЕ задавать значение SelectedImage.
...
Рейтинг: 0 / 0
Помогите с treeview
    #32802241
Spavel_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ Всё понятно. Большое спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с treeview
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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