:: Visual Foxpro, Foxpro for DOS
TreeView & Sortcut Popup
Prog(L)ammer
Автор
И снова траблы с этим деревом и всплывающей менюшкой (по RightClick'y)
Вобщем есть форма O_MAIN, на которой лежит дерево Tree_t
В методе MouseUp этого дерева следующий код
IF button = 2
lcActiveTree = LOWER(This.Name)
ThisForm.MenuPopup(lcActiveTree)
ENDIF
Соотвественно в O_MAIN метод MenuPopup
LPARAMETERS lcActiveTree
ThisForm.AllowOutput = .T.
..........
DEFINE POPUP RiseMenu SHORTCUT RELATIVE FROM MROW(), MCOL()
DEFINE BAR 1 OF RiseMenu PROMPT "111111"
DEFINE BAR 2 OF RiseMenu PROMPT "222222"
DEFINE BAR 3 OF RiseMenu PROMPT "333333"
ON SELECTION POPUP RiseMenu DEACTIVATE POPUP RiseMenu
ACTIVATE POPUP RiseMenu
lnNumChoice = bar()
DEACTIVATE POPUP
release popup RiseMenu
RELEASE POPUPS RiseMenu
DO CASE
CASE lnNumChoice = 1
ThisForm.Search()
CASE lnNumChoice = 2
ThisForm.ListPost(lcActiveTree)
CASE lnNumChoice = 3
ThisForm.ListGrup(lcActiveTree)
ENDCAS
Все нормально работает. НО! Есть такой глюк:
К примеру дерево из 3-х веток.
Кликаем левой кнопкой на первую ветку - прошел Ноуд(1).Селектед и ветка подсвечена. Далее щелкаем правой кнопкой по второй ветке - прошел Ноуд(2).Селектед, ветка подсвечивается и открывается менюшка. Предположим я не хочу ничего выбирать из выданной менюшки и щелкаю левой кнопкой по первой либо третей ветке - менюшка закрывается, проходит Ноуд(3).Селектед (либо Ноуд(1).Селектед), НО подсвеченной остается ВТОРАЯ ВЕТКА. И теперь по каким бы веткам я не гулял подсвеченной остается ТОЛЬКО ВТОРАЯ ВЕТКА! Причем, когда кликаешь по другой ветке в момент удержания левой кнопки данная ветка подсвечивается, но как только отпускаешь кнопку - подсветка возвращается на вторую ветку.

ЗЫ VFP 8.0 + SP1
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
po2

Сообщений: 2864
Откуда: Иркутск
Дата регистрации: 22.12.2001
Если еще не победил, то прицепи к сообщению архив с тестовой формой, на которой можно пронаблюдать описанное. Или в почту из профиля залей.
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
Prog(L)ammer
Автор
Прошу...
Там форма и небольшая таблица.
Кстати, заметил вот какую вещь. Если в tree_t.Click() поставить WAIT TIMEOUT 0.5 , то отрабатывется всё нормально. Но это не выход
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
JS

Сообщений: 12264
Откуда: Эстония
Дата регистрации: 04.09.2000
Переместил код из MouseUp в MouseDown - все работает.




------------------
Knowledge is better than ignorance!
Website: juri.foxhelp.eu
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
аналогична




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
Prog(L)ammer
Автор
Это всё понятно, но мне нужно именно MouseUp
Еще заметил, что этого глюка не наблюдается, если провести курсором мышки над менюшкой, либо менюшку сразу выдавать под курсором, к примеру так:
DEFINE POPUP RiseMenu SHORTCUT RELATIVE FROM MROW()-0.5, MCOL()-1

а вот так опять не сработает:
DEFINE POPUP RiseMenu SHORTCUT RELATIVE FROM MROW()-0.5, MCOL()-0.5

Т.е. курсор обязательно должен оказаться над каким-нибудь BAR'ом (даже щелкать по нему не надо) и тогда этого глюка не будет.
Но всё равно вопрос остается открытым, что за глюк такой и почему наблюдается только в VFP ?
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Измени метод MouseUp следующим образом

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y
IF button = 2
lcActiveTree = LOWER(This.Name)
ThisForm.MenuPopup(lcActiveTree)
ENDIF
This.DropHighlight = .NULL.

Т.е. сделай принудительное обнуление объекта This.DropHighlight. Именно задержка с его сбросом и приводит к подобному эффекту
Ratings: 0 negative/0 positive
Re: TreeView & Sortcut Popup
Prog(L)ammer
Автор
Благодарствую!То что надо !
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 31 (Гостей: 31)

© 2000-2024 Fox Club 
Яндекс.Метрика