powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли в дереве
9 сообщений из 9, страница 1 из 1
Можно ли в дереве
    #33545201
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать вместо чекбоксов крестики закрытия (х) ?
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545262
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, но.. через картинки.
С уважением, Алексей
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545367
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как снимать/ставить отметки с помощью картинок ? Ведь вроде бы нет события на нажатие именно на картинку ?
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545373
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или у вас снятие/установка закрытия находится вне дерева ? Отдельными кнопками ? Мне нужно чтобы именно тыкая на картинки закрытия в дереве, открывать/закрывать (менять картинку)
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545579
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отслеживаете событие NodeClick и анализирую свойство Node Image, меняйте его на другое. Т.е. свойство Image играет роль не только картинки, но и флага "Включен" "Выключен".
Что-то типа
С уважением, Алексей
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545598
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отслеживаете событие NodeClick на TreeView и анализируйте свойство Node Image, меняйте его на другое. Т.е. свойство Image играет роль не только картинки, но и флага "Включен" "Выключен".
С уважением, Алексей
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545681
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KОтслеживаете событие NodeClick на TreeView и анализируйте свойство Node Image, меняйте его на другое. Т.е. свойство Image играет роль не только картинки, но и флага "Включен" "Выключен".
С уважением, Алексей

Немного не понял. Событие nodeclick отрабатывает не только при нажатии на картинку, но и при нажатии на текст. Как отловить событие нажатия только на картинку ? Я не хочу менять картинку (флаг) при нажатии на текст, только при нажатии на картинку. Ведь пользователь может просто потыкаться по тексту мышкой не имея намерения менять этим самым флаг (картинку).
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33545780
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отслеживаю первое нажатие и меняю картинку, если NodeClick сработал на уже выбранном Node
С уважением, Алексей
...
Рейтинг: 0 / 0
Можно ли в дереве
    #33553679
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Программизд 01!

Немного геморройно, но вполне реально - отслеживать надо в событии MouseUp -
при этом по полученным координатам делается первый запрос метода HitTest -
если вернулся объект - значит кликнули по ВСЕЙ области картинка+текст узла.
Затем делаем второй запрос HitTest, но горизонтальную координату уменьшаем
на ширину картинки (для простоты предположим что наша картинка имеет ширину
16 пикселей) - если снова вернулся объект - значит кликнули именно на тексте
узла, а вот если Null - то на самой картинке.
P.S. Не забываем про перевод пикселей в твипы!!!
P.P.S. Вот кстати откопал и кусок кода, надеюсь смысл свойств дерева
nTreeFactor* понятен, и с определением собственно значений коэффициента
проблем не будет :) 1 и 2 это собственно картинки - можно конечно
"зациклить" 3 и более картинок - если они именно интерактивно должны все
выбираться.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
PROCEDURE MouseUp
*** ActiveX Control Event ***
LPARAMETERS tnButton, tnShift, tnX, tnY
LOCAL lo1, lo2
IF m.tnButton =  1 
 lo1 = This.Object.HitTest(m.tnX * This.nTreeFactorX, m.tnY * 
This.nTreeFactorY)
 IF !ISNULL(m.lo1)
  lo2 = This.Object.HitTest((m.tnX -  16 ) * This.nTreeFactorX, m.tnY * 
This.nTreeFactorY)
  IF ISNULL(m.lo2)
   IF m.lo1.Image =  1 
    lo1.Image =  2 
   ELSE
    lo1.Image =  1 
   ENDIF
  ENDIF
 ENDIF
ENDIF
P.P.P.S. Не забываем про _VFP.AutoYield = .F. Иначе дерево будет очень
нехорошо работать - часто терять "нажатия" и вообще вести себя неадекватно.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли в дереве
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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