Координаты мышки относительно VI

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Ответить
AndryG
junior
junior
Сообщения: 54
Зарегистрирован: 24 апр 2017, 22:27
Версия LabVIEW: 2016
Откуда: Украина,Киев
Поблагодарили: 1 раз
Контактная информация:

Координаты мышки относительно VI

Сообщение AndryG »

Доброго времени суток! Уважемые форумчане, не получается абсолютно точно вычислить координаты относительно панели, получается небольшое смещение,не понимаю почему так,если я что-то делаю не так,то прошу помощи в решении данного вопроса. Заранее благодарю.
Вложения
Coord.vi
(17.65 КБ) 4 скачивания
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2572
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 21 раз
Поблагодарили: 79 раз
Контактная информация:

Re: Координаты мышки относительно VI

Сообщение Artem.spb »

Используйте события.
coord.png
coord.png (7.01 КБ) 140 просмотров
Если почему-то нужно "руками", то
Panel Bounds - это окно без рамки (красная метка),
Вам нужно ещё использовать Win bounds - всё окно, включая заголовки/меню (синяя метка),
а положение элеме5нтов задаётся относительно Origin - чёрная полоска (на сетке есть точка в точке (0:0))
bounds.PNG
В итоге, примерно так:
- положение мыши скомпенсировать относительно положения окна
- скомпенсировать это относительно панели
- скомпенсировать на положение Origin
- там разместить объект
Вложения
coord2.vi
(8.75 КБ) 4 скачивания
AndryG
junior
junior
Сообщения: 54
Зарегистрирован: 24 апр 2017, 22:27
Версия LabVIEW: 2016
Откуда: Украина,Киев
Поблагодарили: 1 раз
Контактная информация:

Re: Координаты мышки относительно VI

Сообщение AndryG »

Спасибо за отклик, способ через event мне конечно известен,но нужно,как вы выразились "руками", я думал у меня где-то ошибка в расчетах,оказывается нет, по поводу компенсации я думал,но нужно сделать ее автоматической ,а не в виде константы, на другом компьютере ,с другим рабочим столом ,могут быть вопросы.
AndryG
junior
junior
Сообщения: 54
Зарегистрирован: 24 апр 2017, 22:27
Версия LabVIEW: 2016
Откуда: Украина,Киев
Поблагодарили: 1 раз
Контактная информация:

Re: Координаты мышки относительно VI

Сообщение AndryG »

AndryG писал(а): 19 июл 2021, 22:32 Спасибо за отклик, способ через event мне конечно известен,но нужно,как вы выразились "руками", я думал у меня где-то ошибка в расчетах,оказывается нет, по поводу компенсации я думал,но нужно сделать ее автоматической ,а не в виде константы, на другом компьютере ,с другим рабочим столом ,могут быть вопросы.
Нашел решение!
Вложения
1.png
1.png (5.05 КБ) 131 просмотр
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2572
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 21 раз
Поблагодарили: 79 раз
Контактная информация:

Re: Координаты мышки относительно VI

Сообщение Artem.spb »

AndryG писал(а): 19 июл 2021, 22:32 по поводу компенсации я думал,но нужно сделать ее автоматической ,а не в виде константы
А я и не говорил про константы :)
Все написанные мной значения берутся именно через PN, как вы и сделали в итоге.

Только пара замечаний
- PN лучше вызывать одним узлом, будет работать немного быстрее.
- я предпочитаю при запуске принудительно Origin в (00) смещать чтобы не заниматься компенсациями при таких операциях, и вообще, элементы интерфейса обычно выстраивают аккуратно, и если окно скролить, всё поедет. Вот чтобы этого не было, и чтобы не заниматься выравниванием вручную перед каждым запуском, я просто принудительно выравниваю программно.
AndryG
junior
junior
Сообщения: 54
Зарегистрирован: 24 апр 2017, 22:27
Версия LabVIEW: 2016
Откуда: Украина,Киев
Поблагодарили: 1 раз
Контактная информация:

Re: Координаты мышки относительно VI

Сообщение AndryG »

Artem.spb писал(а): 19 июл 2021, 23:39
AndryG писал(а): 19 июл 2021, 22:32 по поводу компенсации я думал,но нужно сделать ее автоматической ,а не в виде константы
А я и не говорил про константы :)
Все написанные мной значения берутся именно через PN, как вы и сделали в итоге.

Только пара замечаний
- PN лучше вызывать одним узлом, будет работать немного быстрее.
- я предпочитаю при запуске принудительно Origin в (00) смещать чтобы не заниматься компенсациями при таких операциях, и вообще, элементы интерфейса обычно выстраивают аккуратно, и если окно скролить, всё поедет. Вот чтобы этого не было, и чтобы не заниматься выравниванием вручную перед каждым запуском, я просто принудительно выравниваю программно.
Да,конечно вы правы,это же только принцып, значения ,которые не меняются, вычисляются в инициализации или первом запуске приложения,кто как пишет.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Общие»