Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли в дереве / 9 сообщений из 9, страница 1 из 1
15.02.2006, 08:22
    #33545201
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Сделать вместо чекбоксов крестики закрытия (х) ?
...
Рейтинг: 0 / 0
15.02.2006, 09:04
    #33545262
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Можно, но.. через картинки.
С уважением, Алексей
...
Рейтинг: 0 / 0
15.02.2006, 09:49
    #33545367
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
А как снимать/ставить отметки с помощью картинок ? Ведь вроде бы нет события на нажатие именно на картинку ?
...
Рейтинг: 0 / 0
15.02.2006, 09:50
    #33545373
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Или у вас снятие/установка закрытия находится вне дерева ? Отдельными кнопками ? Мне нужно чтобы именно тыкая на картинки закрытия в дереве, открывать/закрывать (менять картинку)
...
Рейтинг: 0 / 0
15.02.2006, 11:07
    #33545579
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Отслеживаете событие NodeClick и анализирую свойство Node Image, меняйте его на другое. Т.е. свойство Image играет роль не только картинки, но и флага "Включен" "Выключен".
Что-то типа
С уважением, Алексей
...
Рейтинг: 0 / 0
15.02.2006, 11:11
    #33545598
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Отслеживаете событие NodeClick на TreeView и анализируйте свойство Node Image, меняйте его на другое. Т.е. свойство Image играет роль не только картинки, но и флага "Включен" "Выключен".
С уважением, Алексей
...
Рейтинг: 0 / 0
15.02.2006, 11:32
    #33545681
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Aleksey-KОтслеживаете событие NodeClick на TreeView и анализируйте свойство Node Image, меняйте его на другое. Т.е. свойство Image играет роль не только картинки, но и флага "Включен" "Выключен".
С уважением, Алексей

Немного не понял. Событие nodeclick отрабатывает не только при нажатии на картинку, но и при нажатии на текст. Как отловить событие нажатия только на картинку ? Я не хочу менять картинку (флаг) при нажатии на текст, только при нажатии на картинку. Ведь пользователь может просто потыкаться по тексту мышкой не имея намерения менять этим самым флаг (картинку).
...
Рейтинг: 0 / 0
15.02.2006, 11:53
    #33545780
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в дереве
Я отслеживаю первое нажатие и меняю картинку, если NodeClick сработал на уже выбранном Node
С уважением, Алексей
...
Рейтинг: 0 / 0
18.02.2006, 04:41
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли в дереве / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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