powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не получается с GridHitTest
6 сообщений из 6, страница 1 из 1
Не получается с GridHitTest
    #35633876
Zitz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме лежит грид. Пытаюсь привязать контекстное меню на RightClick грида, дублирую для text столбцов. Меню выпадает совершеннно не там, где по идее должно :). Ниже текст метода:

LOCAL lnRow, lnCol, lnElem
STORE 0 TO lnRow, lnCol, lnElem

This.GridHitTest(MROW(ThisForm.Name,3),MCOL(ThisForm.Name,3),@m.lnElem,@m.lnRow,@m.lnCol)

DEFINE POPUP shortcut SHORTCUT RELATIVE FROM m.lnRow, m.lnCol
DEFINE BAR 1 OF shortcut PROMPT "Добавить"
DEFINE BAR 2 OF shortcut PROMPT "Редактировать"
DEFINE BAR 3 OF shortcut PROMPT "\Переместить"
DEFINE BAR 4 OF shortcut PROMPT "Удалить"

ON SELECTION BAR 1 OF shortcut DO this.maddRec()
ON SELECTION BAR 2 OF shortcut DO this.meditRec()
ON SELECTION BAR 3 OF shortcut DO this.mmoveRec()
ON SELECTION BAR 4 OF shortcut DO this.mdelRec()

Подскажите пожалуйста, что делаю не так?
...
Рейтинг: 0 / 0
Не получается с GridHitTest
    #35634153
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так чем не устраивает:
Код: plaintext
DEFINE POPUP shortcut SHORTCUT RELATIVE FROM MROW(),MCOL()
С уважением, Алексей
...
Рейтинг: 0 / 0
Не получается с GridHitTest
    #35635660
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* grid.RightClick()

&& получить тек.координаты мыши относительно формы
local aMouseInfo[ 1 ], lInGrid
amouseobj(aMouseInfo, 1 )
lInGrid = this.GridHitTest(aMouseInfo[ 3 ],aMouseInfo[ 4 ], @iWhere) and iWhere= 3 

if lInGrid        && клик над данными в гриде
    && ... Popup
endif
...
Рейтинг: 0 / 0
Не получается с GridHitTest
    #35635669
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iWhere ещё объявить забыл
Код: plaintext
local aMouseInfo[ 1 ], iWhere, lInGrid
...
Рейтинг: 0 / 0
Не получается с GridHitTest
    #35636062
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что в команде DEFINE POPUP необходимо указать координаты, относительно основного окна _SCREEN. Абсолютные координаты.

Причем координаты строки и столбца указываются, в так называемых, "фокселах". Один фоксел - это средний размер одной буквы соответствующего шрифта. Это то, что возвращают функции MROW() и MCOL() без второго параметра.

4 и 5 параметры метода GridHitTest() возвращают относительные порядковые номера столбцов и строк. Относительно края Grid. Например, если в Grid видны 2 столбца и ты ткнул мышкой по первому, то и получишь значение 1 (первый столбец). Ткнул по второму - получишь значение 2 (2 столбец).

Т.е. параметры метода GridHitTest() возвращают вовсе не координаты, а "указания". Т.е. сообщают о том, в какой объект ты попал. Но вовсе не то, по каким координатам этот объект находится.

Другими словами, тебе надо повтороно использовать функции MROW() и MCOL() в команде DEFINE POPUP. Возвращаемые параметры GridHitTest() - бесполезны. Они не о том.
...
Рейтинг: 0 / 0
Не получается с GridHitTest
    #35637229
Zitz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое всем. Век живи, век учись :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не получается с GridHitTest
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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