|
|
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
SolmyrАга, HitTest вставил. Все вроде работает. Только вот если нажать на один узел правой, а потом на другой тоже правой, не убирая меню от предыдущего нажатия, то фильтрация в гриде справа происходит не всегда, хотя передвижение в таблице каталогов, по которой фильтрация идет, происходит, я отсмотрел. И обновление грида стоит. Или это правильно? Правильно. Дело тут в следующем. Видимо у тебя, как и положено, обновление Grid происходит в событии NodeClick. Но, как я уже заметил выше, событие MouseDown происходит ДО события NodeClick. Более того, в зависимости от обработки, событие NodeClick может вообще не произойти. Чтобы это обойти, надо первой командой в MouseDown сделать принудительное присвоение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Здесь This.nTwipX и This.nTwipY - это мои свойства, которые я ввел в TreeView для перевода пикселей в твипы Правда, в этом случае возможно срабатываение события NodeClick дважды. Но не думаю, что это будет такая уж большая проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 14:56:27 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
SolmyrДа, и еще. Как сделать, чтобы при открытии формы корневой каталог разворачивался на один уровень? У меня в Init TreeView стоит: THIS.Expand(THIS.Nodes(1)). И ни фига он не разворачивается. Наверно опять что-то не так сделал? Ты делаешь распространенную ошибку, считая, что узел с индексом 1 - это корневой узел дерева. В общем случае это не всегда так. Т.е. надо определять корневой узел следующим образом This.Nodes(1).Root Для раскрытия узла дерева необходимо не вызывать событие, а изменить состояние, которое вызывает это событие. В данном случае - свойство Expanded This.Nodes(1).Root.Exapnded = .T. Кроме того, при работе с ActiveX обязательно надо делать глобальную настройку _VFP.AutoYield = .F. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 15:05:25 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Все заработало. to ВладимирМ. Друг мой, эту команду можно включить в Main.prg прямо в таком виде, как вы написали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 17:17:44 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Solmyrto ВладимирМ. Друг мой, эту команду можно включить в Main.prg прямо в таком виде, как вы написали? Имеется в виду _VFP.AutoYield = .F. Да. Это глобальная настройка. Не зависит от Private DataSession. Можно назначить один раз при открытии проги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 18:08:23 |
|
||
|
|

start [/forum/topic.php?fid=41&startmsg=33236351&tid=1593603]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
209ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 512ms |

| 0 / 0 |
