Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Всем привет . Оттачиваю свою программку по аккумуляторным батареям. (Отдельное спасибо за помощь с диаграммой mishem и Necronomicon). Встал вопрос - можно ли сделать проще? В проге есть 2 Restangle, в которых размещены таблицы. В одной из них список АБ, в другой измерения. При нажатии на любую строчку в таблице АБ происходит вывод измерений данной АБ. Так вот, так как в свойствах таблицы (плагин NeoBookDBPro) нет события на нажатие ЛКМ, то я установил сканер мыши (из плагина Function, по-моему) и следил за переменной, при необходимом значении которой вызывалась подпрограмма. Но вот отследить что мышь была нажата именно на таблице с данными АБ было тяжело. Я нашел 2 способа: 1) через дескриптор, но почему-то определяемый встроенной в NeoBook командой (из Объекты) дескриптор не совпадал с дескриптором определяемым в сканере мыши при наведении на таблицу (таблица расположена на панели, но и дескрипторы панели не совпадали) 2) через проверку совпадения координат таблицы и курсора.
Выбрал второй вариант, но мне не нравится что когда окно неактивно или поверх него модальное окно, то все равно по этим координатам срабатывает подпрограмма. С дескриптором было бы лучше, но....никак. Есть ли еще варианты отследить событие на нажатие ЛКМ по таблице?
Но вот отследить что мышь была нажата именно на таблице с данными АБ было тяжело.
Разместите прямоугольник, к которму привязана таблица, внутри объекта контейнер. У контейнера есть события MouseEnter и MouseExit, назначте этим событиям какую-либо "следящую" переменную, и по её содержимому определяйте когда мышь находится над таблицей, а когда вне таблицы. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Спасибо, попробую. Была такая идея, но почему-то показалось, что раз прямоугольник поверх контейнера, то контейнер не будет ощущать присутствия мыши. Но Вы меня почему-то убедили:-)
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Есть такая проблема. Если нет отступа у контейнера, при быстром перемещение мыши бывает не успевает сработать. По этому желательно сделать отступ. Не хочешь читать хелп?
Вот уж по истине голь на выдумки сильна. Сидел я так, новую справку читал, и задался вопросом, какой из объектов может срабатывать на изменение переменной? То что у плагина NeoBookDBPro нет события на ЛКМ меня давно напрягало. Сейчас опять с этим плагином работаю, и опять нужен просто левый клик. Дубль есть, правый есть, а левого нет. Че за беда. Нашел решение. Плюс мне в репу, и не один.
Как говорится гениальное все просто. Создаем объект WebBrowser за пределами окна. В строке Интернет адрес или файл HNML пишем [PubDir][Переменная в которой меняется значение номера строки].html и в браузере на любой вкладке пишем код или указываем подпрограмму. Фсе! Событие на левый клик работает!
Добавлено (19 Апреля 2013, 23:44) --------------------------------------------- Кстати точно так же можно отслеживать и изменения внесенные в полях в строке. Запоминать в переменную номер строки и ставить условие, если номер строки не изменился, а значение в переменной такой то изменилось выполнить то то.
И точно так же можно отслеживать изменение любой переменной НБ.
пишем [PubDir][Переменная в которой меняется значение номера строки].html
не обязательно, просто переменную, которая отслеживается. Получается, что мониторится переменная, ибо и ЛКМ и ПКМ будут запускать событие в WebBrowser. Кстати, если назначить дубль-клик к таблице, то при клике иногда срабатывает событие в WebBrowser. Зависит от скорости дубль-клика.
Добавлено (20 Апреля 2013, 06:46) ---------------------------------------------
Цитата (Сергей)
ибо и ЛКМ и ПКМ
не только, что любое событие мыши и клавиатуры(например стрелки), которые меняют значение переменной. mishem, ты нашел способ мониторить переменную
Добавлено (20 Апреля 2013, 06:50) --------------------------------------------- жаль, что отслеживать можно только одну переменную... Вернее, переменных отслеживать можно много, а назначать только одну подпрограмму но порой и такое очень нужно
не обязательно, просто переменную, которая отслеживается.
Ну да, наверно. Просто когда пробовал, думал что будет сохраняться файл, или хотел создавать файл, короче все как обычно, методом тыка. После уже пробовать не стал.
Цитата (Сергей)
ибо и ЛКМ и ПКМ будут запускать событие в WebBrowser
Ну да, сдесь уже без плагина наверно не отследить. Хотя не задумывался над этим.
Цитата (Сергей)
то при клике иногда срабатывает событие в WebBrowser
По идее так и должно быть, не проверял. Значит нужно какое нибудь условие добавлять.
Добавлено (20 Апреля 2013, 06:52) ---------------------------------------------
Цитата (Сергей)
а назначать только одну подпрограмму
Почему? Создай несколько браузеров для переменных и назначь разные подпрограммы. Не хочешь читать хелп?
Когда очень понадобится, то радоваться будешь этому изврату. Можно конечно еще поломать голову, но это уже когда понадобится, или под настроение.
Цитата (Сергей)
Глядишь и разрабы сделают родную функцию
Я создал такую тему на оффоруме, но что то там тишина, мож не поняли.
Цитата (Сергей)
какая версия НБ?
5.8.1, но глючная ссука. Думаю до решения проблем на 5.7.1 перейти пока.
Добавлено (20 Апреля 2013, 07:10) --------------------------------------------- Кстати когда хочеш версию узнать, паб файл в блокноте открой, там строка есть NeoBookVer=5,80
У меня тоже 5.80 хотя версия 5.8.1. Разрабы или забыли, или просто не до этого. Проблемы только и успевают исправлять.
Добавлено (21 Апреля 2013, 02:11) ---------------------------------------------
Цитата (Сергей)
Цитата (mishem) пишем [PubDir][Переменная в которой меняется значение номера строки].html
не обязательно, просто переменную, которая отслеживается.
Обязательно. Иначе браузер лезет в интернет и пытается загрузить из интернета то что находится в переменной. А если скорость интернета на компе еще и маленькая, то обновление информации может затянутся.
Кстати если мониторить переменную которая быстро обновляется, не очень удобно. Появляются песочные часы. Но может быть это в не скомпилированном варианте. Не проверял пока.
Пробовал получить цвет под курсором мыши по координатам курсора. Использовал плагин Петра, включить монитор мыши. И по координатам [zmMouseX] и [zmMouseY] плагином Гарика получаю цвет