Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Закавыка с реализацией "прилипания" объекта через Drag Drop
ВадимДата: Пт, 16 Июля 2010, 03:43 | Сообщение # 1
Генератор идей
Суть проблемы в том, что команда GetObjectInfo считывает информацию не о положении объекта ПОСЛЕ перетаскивания (как по идее должно быть, ведь код я разместил на вкладке "Drag Drop", и команды с нее должны исполниться именно после того, как левая кнопка мышки отпущена), а считывает те координаты объекта, которые ему соответствовали ДО перетаскивания... %)

И я что-то долго уже туплю с этим... Задача в общем-то простая - надо, чтобы сброс перетаскиваемого объекта корректировался "прилипанием", в данном простом случае это значит, что если объект опускается ниже заданной границы (значение "100"), то он автоматом размещается на заданной линии (значение "190").

В тестовом pub-примере (см. в прикреплении), у текстового объекта "Прилипала" на вкладке "Drag Drop" размещен следующий код (больше никакого кода в этом примере нет):

Код работает некорректно, я думаю потому, что команда GetObjectInfo работает с отставанием на одно перетаскивание... :'(
Как бывало уже не раз, подозревать NB бесперспективно, ошибка скорее всего моя, но я ее НЕ ВИЖУ. Помогите прозреть, спать уже не могу! crazy

Вот здесь на MMB как-то же as-master реализовал прилипание. Но я не могу прочесть код проекта.
У кого есть MMB, можно код увидеть в текстовом виде?

Тестовый файл проекта:

Прикрепления: Prilipanie.rar (2.3 Kb) · 7519349.png (10.2 Kb)


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
Вадим - Пт, 16 Июля 2010, 04:27
 
СообщениеСуть проблемы в том, что команда GetObjectInfo считывает информацию не о положении объекта ПОСЛЕ перетаскивания (как по идее должно быть, ведь код я разместил на вкладке "Drag Drop", и команды с нее должны исполниться именно после того, как левая кнопка мышки отпущена), а считывает те координаты объекта, которые ему соответствовали ДО перетаскивания... %)

И я что-то долго уже туплю с этим... Задача в общем-то простая - надо, чтобы сброс перетаскиваемого объекта корректировался "прилипанием", в данном простом случае это значит, что если объект опускается ниже заданной границы (значение "100"), то он автоматом размещается на заданной линии (значение "190").

В тестовом pub-примере (см. в прикреплении), у текстового объекта "Прилипала" на вкладке "Drag Drop" размещен следующий код (больше никакого кода в этом примере нет):

Код работает некорректно, я думаю потому, что команда GetObjectInfo работает с отставанием на одно перетаскивание... :'(
Как бывало уже не раз, подозревать NB бесперспективно, ошибка скорее всего моя, но я ее НЕ ВИЖУ. Помогите прозреть, спать уже не могу! crazy

Вот здесь на MMB как-то же as-master реализовал прилипание. Но я не могу прочесть код проекта.
У кого есть MMB, можно код увидеть в текстовом виде?

Тестовый файл проекта:


Автор - Вадим
Дата добавления - 16 Июля 2010 в 03:43
ВадимДата: Пт, 16 Июля 2010, 14:35 | Сообщение # 2
Генератор идей
Проблему удалось решить. :)

Вот рабочий код (продублировано в PUB, см. прикрепление "Prilipanie2.rar"):

Суть решения в знании о том, что актуальную информацию о координатах объекта NB держит во встроенных глобальных переменных [DropX] и [DropY], а команда GetObjectInfo после факта перетаскивания показывает не актуальные, а предшествующие перетаскиванию координаты (кстати, это даже может пригодиться, главное знать это заранее).

Переменные [DropX] и [DropY] обновляются мгновенно, сразу после перетаскивания объекта, т.е. еще ДО того, как будет выполнен код, прописанный на вкладке "Drag Drop", поэтому значения этих системных переменных можно использовать в коде на этой вкладке без опроса параметров объекта.

Как всегда, в итоге, всё оказалось очень просто - нефиг было терзать GetObjectInfo :D , а надо было пользоваться "переменными горячих координат объекта ([DropX] и [DropY])". Кстати, как вам название? :D

Прикрепления: 2953748.png (11.0 Kb) · Prilipanie2.rar (2.3 Kb)


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеПроблему удалось решить. :)

Вот рабочий код (продублировано в PUB, см. прикрепление "Prilipanie2.rar"):

Суть решения в знании о том, что актуальную информацию о координатах объекта NB держит во встроенных глобальных переменных [DropX] и [DropY], а команда GetObjectInfo после факта перетаскивания показывает не актуальные, а предшествующие перетаскиванию координаты (кстати, это даже может пригодиться, главное знать это заранее).

Переменные [DropX] и [DropY] обновляются мгновенно, сразу после перетаскивания объекта, т.е. еще ДО того, как будет выполнен код, прописанный на вкладке "Drag Drop", поэтому значения этих системных переменных можно использовать в коде на этой вкладке без опроса параметров объекта.

Как всегда, в итоге, всё оказалось очень просто - нефиг было терзать GetObjectInfo :D , а надо было пользоваться "переменными горячих координат объекта ([DropX] и [DropY])". Кстати, как вам название? :D


Автор - Вадим
Дата добавления - 16 Июля 2010 в 14:35
  • Страница 1 из 1
  • 1
Поиск: