![]() |
|
|
![]()
|
|
| Artiom |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: 3 Всего: 17 |
хочу обрабатывать событие двойного клика мышки на гриде (вызывать форму для изменения записи). Но почему-то грид на двойной клик никак не реагирует, если заполнены данные. А если я кликаю на пустом гриде (или просто на пустых строках кликаю) - то событие срабатывает. Почему так? не могу понять
-------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
| Сергей |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
Grid – это объект контейнер, у которого есть свой обработчик события – DblClick.
Но обработчик такого же события имеется и у объектов входящих в него. Вот для примера, если взять Grid с одной колонкой, то такой же обработчик события – DblClick имеется и у объектов Header1 и Text1, которые входят в объект Column1, который в свою очередь входит в объект Grid. Посмотри внимательно - куда прописан код обработки события – DblClick, собственно самого Grid или где в другом месте. Судя по твоим намерениям, то - должен быть для объекта Text1. |
|||
|
||||
| Artiom |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: 3 Всего: 17 |
Да, действительно так было бы логично. но DblClick не срабатывает почему-то на Text1. Честно говоря - не могу понять для какого объекта у меня вызвается обработчик в случае когда кликаю по строкам грида.
-------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 13 Всего: 60 |
Дело в том, что метод DblClick грида отрабатывает когда активен сам грид, а вот когда в гриде отоброжаются записи, то их отоброжает уже вложенный Control. У него и срабатывает DblClick. Но сложность в том срабатывать будет только то Control, на который ты кликаешь, если надо, что бы срабатывала вся строка, то создай клас-наследник TText и в его методе DblClick пропиши необходимый код. И помести этот клас в замен стандартного Добавлено @ 09:41 Сорри за ошибки, работы много - пишу почти не глядя -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Сергей |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
Да. можно так как сказал прыдыущий оратор - Cashey.
А если не хочешь заморачиваться с классами и менять в гриде control Text1 на TText, то пропиши свой код в обработчике события DblClick каждого объекта Text1, входящего в грид. Т.е. сколько колонок - столько раз и пропиши код. |
|||
|
||||
| Artiom |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: 3 Всего: 17 |
Так и делаю - не работает -------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
| Сергей |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
1. Что у тебя прописано в RecordSource для Grid ? (Здесь должно быть имя таблицы)
2. Что у тебя прописано в ControlSource для Column1 ? (Здесь должно быть имя поля таблицы) 3. Что у тебя прописано в ControlSource для Text1 ? (Здесь должно быть имя поля таблицы) 4. Ты умешь работать с Debuggerом ? ЗЫ. Сечас ухожу на работу. Если до вечера не разрешится, то попробуем дальше. Добавлено @ 13:59 Да, еще в догонку - с какой версией Foxa работаешь? |
|||
|
||||
| Artiom |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: 3 Всего: 17 |
в RecordSource происан курсор, ControlSource для Column1 и Text1 я не прописывал, отображает нормально вроде без этого(впрочем если прописать поле,то ничего не меняется).
работаю с VFP 8.0. только начинаю Это сообщение отредактировал(а) Artiom - 29.6.2006, 14:53 -------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
| Сергей |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
1. Запускаешь Debugger
2. Ставишь первой командой в обработчике события – DblClick команду - SET STEP ON 3. Запускаешь форму на выполнение 4. Выполняешь DblClick в строке – Grid 5. Переключаешься на Debugger 6. Нажимаешь 11 кнопку слева – Call Stack Windows 7. Смотришь цепочку стека вызовов 8. Глубоко думаешь 9. Делаешь, не мене глубокие - выводы |
|||
|
||||
| Artiom |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: 3 Всего: 17 |
Сегодня прописал обработчик DblClick для грида и вдруг он заработал! ничего больше вроде не менял. Все работает, а почему не работало раньше - не понимаю. Так или иначе - проблема решена
-------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
![]()
|
| Правила форума "Foxpro/Clipper/Dbase" | |
|
|
Запрещается! 1. Публиковать ссылки для чисто рекламных целей. 2. Оффтопить, флеймить, говорить не культурно. Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему. Задавайте вопросы правильно - как спросите, так вам и ответят. Разрешено! Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил. Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы. P.S. Размещение рекламы будет строго наказываться! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |