Надо написать маленькую главку в "Энциклопедию Костылей".
С11.0.13401. Есть броуз. Нужно по нажатию левой клавиши мыши сделать некие действия, далее программа должна работать как обычно. Проблема вот в чём. Событие NewSelection на броузе срабатывает при отпускании клавиши мыши. Ставлю на списке "Алерт". В "Преалерт" делаю свои действия и отправляю cycle'ом далее. Но селект на запись броуза срабатывает не всегда. То срабатывает, то не срабатывает. Что подправить? Куда костыль подставить?
Поймать MouseLeft на списке.
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
-
- Полимат
- Сообщения: 1817
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 27 раз
- Поблагодарили: 10 раз
Поймать MouseLeft на списке.
если костыль, то BRWx.UpdateViewRecord и после своих действий - BRWx.ResetFromBuffer )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
- morkovin
- Ветеран
- Сообщения: 935
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
- Контактная информация:
Поймать MouseLeft на списке.
Попробуй так:
Код: Выделить всё
!Browse Embed: TakeNewSelection (2600)
IF SELF.ILC.GetControl(){PROPLIST:MouseDownRow} <> 0 AND SELF.ILC.GetControl(){PROPLIST:MouseDownZone}=LISTZONE:Field
SELF.UpdateBuffer
xQueueFieldNo# = SELF.ILC.GetControl(){PROPLIST:FieldNo,SELF.ILC.GetControl(){PROPLIST:MouseDownField}}
xField" = UPPER(CLIP(WHO(Queue:Browse,xQueueFieldNo#)))
MESSAGE(xField",'test')
END
WBR, morkovin
morkovin
- morkovin
- Ветеран
- Сообщения: 935
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
- Контактная информация:
Поймать MouseLeft на списке.
Код: Выделить всё
!Browse Embed: TakeNewSelection (2600)
IF SELF.ILC.GetControl(){PROPLIST:MouseDownField} <> 0 AND SELF.ILC.GetControl(){PROPLIST:MouseDownZone}=LISTZONE:Field
SELF.UpdateBuffer
xQueueFieldNo# = SELF.ILC.GetControl(){PROPLIST:FieldNo,SELF.ILC.GetControl(){PROPLIST:MouseDownField}}
xField" = UPPER(CLIP(WHO(Queue:Browse,xQueueFieldNo#)))
IF KeyCode() = MouseLeft !alert MouseLeft
MESSAGE(xField",'test')
END
END
WBR, morkovin
morkovin
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Поймать MouseLeft на списке.
Я, конечно, попробую завтра на работе. Но что-то сомневаюсь. Событие NewSelection не срабатывает, до класса, думаю, тем более не дойдёт. Повторю - нужно отловить не клик, а именно нажатие. Пользователь нажал левую клавишу мыши и её не отпускает.
We are hard at work… for you. 

kreator
- Дед Пахом
- Старичок
- Сообщения: 3300
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 51 раз
- Контактная информация:
Дед Пахом
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Поймать MouseLeft на списке.
В "Энциклопедии костылей" нет места для WinAPI. 

We are hard at work… for you. 

kreator
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)