Как узнать?
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Как узнать?
Всем доброго времени суток.
С наступившим НГ!
Clarion10
Вопрос такой - как узнать - находится ли в данный момент мышка над активной строкой в LISTBOX, скажем именно над полем kind?
С наступившим НГ!
Clarion10
Вопрос такой - как узнать - находится ли в данный момент мышка над активной строкой в LISTBOX, скажем именно над полем kind?
dsabitov
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как узнать?
Думаю, никак. Пока не нажмёшь, не определишь. Единственный контрол, который определяет, что мышка над ним, - это регион. Но его использование в броузе - большой вопрос. Что нужно конкретно? Выпадающая подсказка?
We are hard at work… for you. 

kreator
Как узнать?
Согласен с креатором, нужно бы узнать конечный замысел.
Пока могу предложить следующий финт: если создать контрол(ы) типа region, равный(е) по размеру строке(полям) listbox'а, и двигать его(их) каждый раз вслед за выделенной строкой, то при наведении на такую строку (а равно и на регион), у региона отработает нужное вам событие.
Если же действительно нужна всплывающая инфа, то можно обойтись свойством PROP:Tooltip
Shur
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как узнать?
Немного оффтопик. Кларионовский лист беден и убог, по жизни. Но понимает, на самом деле, где мы находимся. Отлавливает же, собака, мышку. Только нам это "отлавливание" не доступно. А жаль...
We are hard at work… for you. 

kreator
-
- Полимат
- Сообщения: 1814
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 25 раз
- Поблагодарили: 10 раз
Как узнать?
так над строкой или столбцом?


тогда как tip определяет без нажатияkreator писал(а):Думаю, никак. Пока не нажмёшь, не определишь. Единственный контрол, который определяет, что мышка над ним, - это регион. Но его использование в броузе - большой вопрос. Что нужно конкретно? Выпадающая подсказка?

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Как узнать?
Как уже кто то писал, просто мы не просим SV внедрить новый функционал ListBox.
А сами они не фантазеры добавлять функционал который везде уже есть, притом давно.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Admin
Как узнать?
Доброго дня!
Да - моя задача реализовать что-то вроде ToolTip, содержание которого генерировалось бы программно. Причем ToolTip должен появляться свой для каждого поля при наведении мыши на подсвеченную строку.
Вчера (в файле property.clw) я нашел некоторые свойства PROPLIST, которые почти то что нужно, если бы не требовали предварительного нажатия мышкой на сам контрол LIST, вот (предположительно) они:
PROPLIST:MouseDownRow EQUATE (7C20H) ! integer
PROPLIST:MouseMoveRow EQUATE (7C21H) ! integer
PROPLIST:MouseUpRow EQUATE (7C22H) ! integer
PROPLIST:MouseDownField EQUATE (7C23H) ! integer
PROPLIST:MouseMoveField EQUATE (7C24H) ! integer
PROPLIST:MouseUpField EQUATE (7C25H) ! integer
PROPLIST:MouseDownZone EQUATE (7C26H) ! integer
PROPLIST:MouseMoveZone EQUATE (7C27H) ! integer
PROPLIST:MouseUpZone EQUATE (7C28H) ! integer
Свойство PROPLIST:MouseUpField я проверил - выдает номер колонки над которой находится мышка (если нажать мышкой на сам контрол).
Действую я следующим образом - по EVET:Timer я отслеживаю двигалась или нет мышка в течении (скажем) 1 секунды. Если нет - то мне остается только узнать - находится ли мышь над активной строкой и над каким именно полем....
Да - моя задача реализовать что-то вроде ToolTip, содержание которого генерировалось бы программно. Причем ToolTip должен появляться свой для каждого поля при наведении мыши на подсвеченную строку.
Вчера (в файле property.clw) я нашел некоторые свойства PROPLIST, которые почти то что нужно, если бы не требовали предварительного нажатия мышкой на сам контрол LIST, вот (предположительно) они:
PROPLIST:MouseDownRow EQUATE (7C20H) ! integer
PROPLIST:MouseMoveRow EQUATE (7C21H) ! integer
PROPLIST:MouseUpRow EQUATE (7C22H) ! integer
PROPLIST:MouseDownField EQUATE (7C23H) ! integer
PROPLIST:MouseMoveField EQUATE (7C24H) ! integer
PROPLIST:MouseUpField EQUATE (7C25H) ! integer
PROPLIST:MouseDownZone EQUATE (7C26H) ! integer
PROPLIST:MouseMoveZone EQUATE (7C27H) ! integer
PROPLIST:MouseUpZone EQUATE (7C28H) ! integer
Свойство PROPLIST:MouseUpField я проверил - выдает номер колонки над которой находится мышка (если нажать мышкой на сам контрол).
Действую я следующим образом - по EVET:Timer я отслеживаю двигалась или нет мышка в течении (скажем) 1 секунды. Если нет - то мне остается только узнать - находится ли мышь над активной строкой и над каким именно полем....
dsabitov
Как узнать?
Ух ты!
Решено.
Свойства PROPLIST:MouseMoveRow и PROPLIST:MouseMoveField "живые"! Буду рад, если кому то пригодится в будущем...
Решено.
Свойства PROPLIST:MouseMoveRow и PROPLIST:MouseMoveField "живые"! Буду рад, если кому то пригодится в будущем...
Код: Выделить всё
IF ?LQ{PROPLIST:MouseMoveRow}=CHOICE(?LQ) AND ?LQ{PROPLIST:MouseMoveField}=4 THEN
MESSAGE('Over 4-th field hilighted!')
END
dsabitov
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
Как узнать?
Гипотетически можно попробовать по таймеру генерить щелчок мышки и устанавливать флаг фиктивного нажатия.
По Prop:PreAlertKey, при включенном флаге фиктивного нажатия, анализировать свойства PropList,
отсекать стандартное действие ?List по нажатию кнопки мышки и сбрасывать флаг фиктивного нажатия
(иначе не будет обрабатываться обычный щелчок мышкой).
В теории должно работать, но надо пробовать.

Make Clarion Great Again ! 
Игорь Столяров
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как узнать?
Я бы не стал сейчас сильно заморачиваться, потому что tooltip'ы работают. И для каждой ячейки они свои. И их можно создать в момент создания очереди листа. Надо просто подумать - что нужно выдавать. Лист ведь не слишком динамичная структура (обычная очередь). И ещё. Использование свойств PROPLIST:MouseMoveRow и PROPLIST:MouseMoveField в данном контексте как-то не очень.dsabitov писал(а):Да - моя задача реализовать что-то вроде ToolTip, содержание которого генерировалось бы программно. Причем ToolTip должен появляться свой для каждого поля при наведении мыши на подсвеченную строку.
We are hard at work… for you. 

kreator
Как узнать?
В приведённом примере есть один недостаток -- кто будет каждый раз жать на кнопку OK, чтобы закрыть MESSAGE().dsabitov писал(а): Свойства PROPLIST:MouseMoveRow и PROPLIST:MouseMoveField "живые"! Буду рад, если кому то пригодится в будущем...Код: Выделить всё
IF ?LQ{PROPLIST:MouseMoveRow}=CHOICE(?LQ) AND ?LQ{PROPLIST:MouseMoveField}=4 THEN MESSAGE('Over 4-th field hilighted!') END
Если выводимая в качестве tooltip'а информация статична, пользуйтесь стандартным tooltip инструментарием. А вот если вы изменили запись и тут же хотите её в тултипе, то, возможно, приведённый код более приемлем, только надо открывать своё собственное окошко и потом его по таймеру закрывать.
Последний раз редактировалось Shur 05 Январь 2016, 13:29, всего редактировалось 1 раз.
Shur
Как узнать?
То, что я хотел - получилось сделать. ToolTip - это хорошо, но у меня получился больший функционал (понимаю, что все это ребячество, возникшее из-за свободного времени на праздниках
).
Итак, если я навожу указатель мыши на активную строчку, именно на столбец kind, то при наличии записей, для которых текущая является ссылкой, вываливается мой волшебный псевдо ToolTip в виде таблички. Экранчик в приложенном файле.
Вдруг кому-то такое нужно - пишите, расскажу. Всем спасибо за живое участие!

Итак, если я навожу указатель мыши на активную строчку, именно на столбец kind, то при наличии записей, для которых текущая является ссылкой, вываливается мой волшебный псевдо ToolTip в виде таблички. Экранчик в приложенном файле.
Вдруг кому-то такое нужно - пишите, расскажу. Всем спасибо за живое участие!
Последний раз редактировалось dsabitov 06 Январь 2016, 10:31, всего редактировалось 1 раз.
dsabitov
Как узнать?
Да, вижу, получилось неплохо, и без MESSAGE(), а со своим окном с листбоксом.
Только вы это... ладно банки, Бог с ними -- они и без нас обанкротятся, но номер своего паспорта хотя бы не светите нам
Только вы это... ладно банки, Бог с ними -- они и без нас обанкротятся, но номер своего паспорта хотя бы не светите нам

Последний раз редактировалось Shur 05 Январь 2016, 13:43, всего редактировалось 2 раза.
Shur
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
kreator
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Admin
Вернуться в «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
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)