powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отловить клик по Grid?
2 сообщений из 2, страница 1 из 1
Как отловить клик по Grid?
    #32696545
TarasV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для Grid1.Click пишу

IF this.GridHitTest(MCOL(),MROW()) = 1
...
*-мой код
= MESSAGEBOX('тра-та-та')
...
ENDIF

кликаю по заголовкам безрезультатно
посоветуйте как быть...
...
Рейтинг: 0 / 0
Как отловить клик по Grid?
    #32696569
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя сразу несколько ошибок:

1) MROW() и MCOL() в таком синтаксисе возвращают координату в "фокселах", а не в пикселах. Тут нужен синтаксис вроде

MROW(ThisForm.Name,3)

2) Метод всегда GridHitTest() возвращает .T. для определения куда ткнули мышкой надо действовать по другому

Код: plaintext
1.
2.
3.
4.
LOCAL lnWhere
ThisForm.Grid1.GridHitTest(MROW(ThisForm.Name, 3 ),MCOL(ThisForm.Name, 3 ),@m.lnWhere)
IF m.lnWhere= 1 
...
ENDIF

3) Grid.Click() сработает только если ты кликаешь на пустом месте Grid, где вообще нет никаких данных. Дело в том, что Grid - это объект-контейнер, а в объекте контейнере такие события срабатывают только в том случае, если нет аналогичных событий вложенного объекта.

Но ведь ты тыкаешь мышкой по Header (вложенный объект) у которого есть собственное событие Click(). Вот оно-то и срабатывает. А событие Grid.Click() вообще игнорируется.

Если ты перенесещь свой код в событие Header.Click(), то там оно сработает, но уже нет особого смысла, поскольку и так ясно, что ткнули на заголовок. Впрочем можешь проверить:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
*Событие Grid.Column1.Header1.Click()
LOCAL llWhere
this.Parent.Parent.GridHitTest(MCOL(ThisForm.Name, 3 ),MROW(ThisForm.Name, 3 ),@m.llWhere) 

IF m.llWhere =  1   
 	*-мой код  
  	= MESSAGEBOX('тра-та-та')  
ENDIF  
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отловить клик по Grid?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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