Форум
Написать нам
Страница 2 из 3«123»
Модератор форума: Peter 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Перемещение группы объектов
Перемещение группы объектов
PeterДата: Пятница, 19 Февраль 2010, 16:38 | Сообщение # 31
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (Омар)
Сергей, zmConfigMouseMonitor нб не понимает эту команду

И не поймет!
:)
Читаем здесь.
Когда ж мы научимся-то плагинами пользоваться?....

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DordexДата: Пятница, 19 Февраль 2010, 16:48 | Сообщение # 32
Dordex Software™
Группа: Проверенные
Сообщений: 462
Репутация: 3
Награды: 2
Статус: Offline
Quote (Gorezcaid)
То есть перемещать объект до тех пор,пока не отпущена левая кнопка с объекта? Объясни!

зажал мышь, не кликнул, а именно зажал при зажатой мыши
ведём курсор куда надо, отпускаем и группа передвигается.

Добавлено (19 Февраль 2010, 16:48)
---------------------------------------------

Quote (Омар)
И не поймет!

оууу Peter, тут как тут спс но у меня всё равно что то
там не двигается :(

 
GorezcaidДата: Пятница, 19 Февраль 2010, 17:16 | Сообщение # 33
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Я не понимаю,тебе нужно переместить всю карту вместе с объектами (обозначениями) на ней,без ползунка,только мышкой? scratch

Сообщение отредактировал Gorezcaid - Пятница, 19 Февраль 2010, 17:18
 
DEMBELДата: Пятница, 19 Февраль 2010, 17:29 | Сообщение # 34
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
ну да, только мышкой. он хочеть таскать карту с обьектами при зажатой кнопке мыши куда захочет, я говорю ему что это сложно сделать.
 
GorezcaidДата: Пятница, 19 Февраль 2010, 17:42 | Сообщение # 35
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
У меня так не получается mda
Это возможно,но сложно,с событиями не сопоставлено.

Добавлено (19 Февраль 2010, 17:34)
---------------------------------------------
А хотя у меня есть идея,попробую реализвать...

Добавлено (19 Февраль 2010, 17:42)
---------------------------------------------
Что то типа панаромирования рисунка,но с прикреплёнными к ней объектами,сейчас попробую.У меня получилось такое перетаскивание,но без "карты"

Сообщение отредактировал Gorezcaid - Пятница, 19 Февраль 2010, 17:32
 
DEMBELДата: Пятница, 19 Февраль 2010, 17:43 | Сообщение # 36
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Gorezcaid)
Это возможно,но сложно,с событиями не сопоставлено.

с применением плагина и мониторинга состояний кнопок мыши возможно, в процедуре к плагину процесс таскания может быть обработан через While:
Code
:OnMouse
while "[zmMouseCode]" "=" "LBD"
GetMousePos "[x]" "[y]"
MoveObject "Group1" "[x]" "[y]"
EndWhile
Return

но тут не запоминаются новая позиция группы и перемещение происходит вслед за указателем, т.е. надо рассчитывать координаты для moveobject специально, учитывая разницу между старыми и новыми координатами группы и указателя, т.е. перемещать на вычисленную разницу координат мыши (до начала таскания и после) и исходить из текущих координат группы. Лучше это делать в другом условии, при отпускании кнопки:
Code
If "[zmMouseCode]" "=" "LBU"
расчет и запоминание координат, а возможно и движение
сюда же записать
EndIf
 
GorezcaidДата: Пятница, 19 Февраль 2010, 17:47 | Сообщение # 37
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Можно заменить рисунок Picture на полигон Polygon и поставить команду на Drag Drop (Перетаскивание объекта завершено) - тоесть на карту,может сработает...

Добавлено (19 Февраль 2010, 17:47)
---------------------------------------------

Quote (DEMBEL)
Лучше это делать в другом условии, при отпускании кнопки:

Code
If "[zmMouseCode]" "=" "LBU"
расчет и запоминание координат, а возможно и движение
сюда же записать
EndIf


Попробуй реализовать с полигоном Polygon на Drag Drop
 
DordexДата: Пятница, 19 Февраль 2010, 18:06 | Сообщение # 38
Dordex Software™
Группа: Проверенные
Сообщений: 462
Репутация: 3
Награды: 2
Статус: Offline
Gorezcaid, блин я тебе целую страницу объясняю что мне
помимо карты надо передвигать и объекты :)

Добавлено (19 Февраль 2010, 18:06)
---------------------------------------------
DEMBEL, ладно на сёдня башка уже не варит полторы сутки не спал завтра попробую...

 
DEMBELДата: Пятница, 19 Февраль 2010, 18:23 | Сообщение # 39
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Gorezcaid)
Можно заменить рисунок Picture на полигон Polygon и поставить команду на Drag Drop (Перетаскивание объекта завершено) - тоесть на карту,может сработает...

я это сразу предлагал сделать, но вставил рисунок 1600х1200 - просто жутко тормозит
 
GorezcaidДата: Пятница, 19 Февраль 2010, 18:25 | Сообщение # 40
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Обекты должны переместится на то-же место после отпускания карты(тоесть Polygon),по кругу все объекты должны занять свои места с помощью цикла.
Это возможно,но надо понять как это математически расчитывается по осям x,y.Я над этим ещё поработаю,самому стало интересно.
Сделал набросок в Drag Drop (Перетаскивание объекта завершено) записываем:

GetObjectInfo "Polygon11" "Left" "[Left]"
GetObjectInfo "Polygon11" "Top" "[Top]"

Loop "1" "4" "[цикл полигона]"
GetObjectInfo "[цикл полигона]" "Left" "[Left2]"
GetObjectInfo "[цикл полигона]" "Top" "[Top2]"
.Какое математическое действие?
Math "[Left2]+[Left]" "0" "[Left2]"
Math "[Top2]+[Top]" "0" "[Top2]"
MoveObject "Polygon[цикл полигона]" "[Left2]" "[Top2]"
EndLoop

Сообщение отредактировал Gorezcaid - Пятница, 19 Февраль 2010, 18:27
 
PeterДата: Пятница, 19 Февраль 2010, 18:26 | Сообщение # 41
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (Омар)
у меня всё равно что то
там не двигается

Что-то...
Где-то...
Не двигается...
А причем тут я?

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
GorezcaidДата: Пятница, 19 Февраль 2010, 18:38 | Сообщение # 42
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
У меня ошибка:1
This object does not exist
Данный объект не существует

MoveObject "Polygon[цикл полигона]" "[Left2]" "[Top2]"
Нельзя вставить переменную в название обьекта,требует что б выглядело так:
MoveObject "Polygon1" "[Left2]" "[Top2]"
Почему,с другими объектами так можно,а здесь ошибка
Примечание:переменная [цикл полигона] наращивается от 1 до 4-х

 
DEMBELДата: Пятница, 19 Февраль 2010, 18:39 | Сообщение # 43
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Gorezcaid)
Обекты должны переместится на то-же место после отпускания карты(тоесть Polygon),по кругу все объекты должны занять свои места с помощью цикла.

по моему ты куда-то не в ту сторону думаешь... как я понял, мы двигаем группу(или контейнер), и все в ней само движется одновременно...
 
GorezcaidДата: Пятница, 19 Февраль 2010, 18:55 | Сообщение # 44
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Нет,двигаем полигон Polygon11,а по окончании перетаскивания:
1)определяем координаты Polygon11
2)заводим счетчик(цикл) и временную переменную
3)определяем координаты вставочных объектов
и на столько-же изменяем координаты объектов {по кругу(по циклу)}.
Но вывелась ошибка (смотри выше),мне кажется,что программа не принимает изменение в имени,вложенной в цикл(идёт наложение неизвестных переменных и объекты не перемещаются как и главный).Попробую в ручную.

Добавлено (19 Февраль 2010, 18:55)
---------------------------------------------
А возможно на перемещается,т.к для неё контейнер-это всё окно(имеет приделы,некуда перемещать).Эта идея не получится...Надо искать АЛЬТЕРНАТИВУ!!!

Сообщение отредактировал Gorezcaid - Пятница, 19 Февраль 2010, 18:56
 
DEMBELДата: Пятница, 19 Февраль 2010, 18:56 | Сообщение # 45
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
а не кажется тебе, что имея около сотни обьектов такой пересчет каждого в цикле будет заметно тормозить процесс? не лучше ли двигать сразу группу или контейнер с картой и обьектами?
 
DEMBELДата: Пятница, 19 Февраль 2010, 19:01 | Сообщение # 46
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
вот примерно от этого принципа надо исходить

Добавлено (19 Февраль 2010, 19:01)
---------------------------------------------
требуется плагин zmFunctions если что...

Прикрепления: NS.zip(209Kb)
 
GorezcaidДата: Пятница, 19 Февраль 2010, 19:14 | Сообщение # 47
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Quote (DEMBEL)
а не кажется тебе, что имея около сотни обьектов такой пересчет каждого в цикле будет заметно тормозить процесс? не лучше ли двигать сразу группу или контейнер с картой и обьектами?

Да но Омар, сказал,что ему нужно перетаскивать карту с объектами не по этой системе,я незнаю зачем,но это сильно затормозит компьючер...
Способы которые я и вы ему надали ему не подходят;
Надо что-бы мышкой,без слайдера и без
нажать(чтоб захватить)--->перетащить--->нажать(чтоб отпустить) объект
А требуется
Quote (Омар)
зажал мышь, не кликнул, а именно зажал при зажатой мыши
ведём курсор куда надо, отпускаем и группа передвигается.

Я не знаю что ещё предложить...А вы?,
Надо искать функции в плагинах для такой реализации,или просто перемещать
контейнер Container1 или группу Group1 объектов.
Ваши предложения?

Добавлено (19 Февраль 2010, 19:14)
---------------------------------------------

Quote (DEMBEL)
вот примерно от этого принципа надо исходить
Добавлено (19 Февраль 2010, 19:01)
---------------------------------------------
требуется плагин zmFunctions если что...
Прикрепления: NS.zip(209Kb)

Почему все указывают на этот плагин,недавно установил,но особых функций с клавиатурой и мышкой я там не видел...
Приведите пример,может я ещё не полностью разобрался!

 
DEMBELДата: Пятница, 19 Февраль 2010, 19:28 | Сообщение # 48
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Gorezcaid)
но особых функций с клавиатурой и мышкой я там не видел...

про клаву пока нет ничего, а мы говорим про монитор мышки - команда zmSetMouseMonitor, см. справку и демку. События нажатия/отпускания кнопок обрабатываются в указанной в команде подпрограмме
(F6->Actions->вкладка Subroutines).

Добавлено (19 Февраль 2010, 19:28)
---------------------------------------------

Quote (Gorezcaid)
зажал мышь, не кликнул, а именно зажал при зажатой мыши ведём курсор куда надо, отпускаем и группа передвигается.

в моем примере плагином тоже самое можно сделать, если надо чтобы движение происходило ПОСЛЕ ОТПУСКАНИЯ кнопки (а не во время удержания), то надо осуществлять его в условиях
if "[zmMouseCode]" "=" "LBU" // отпустили левую кнопку
MoveObject // двигаем обьект
EndIf
Тогда при нажатой кнопке рассчитывать координаты, а при отпускании - делать движение, а у меня в подпрограмме все сразу происходит.
 
PeterДата: Пятница, 19 Февраль 2010, 19:41 | Сообщение # 49
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Сорри, но у меня нет сил читать всю тему целиком.
Хоть и ненавижу геймерские темы, но..
Насколько я понял задачу: есть карта, с расположенными на ней объектами, и эту карту нужно двигать мышкой, и так, чтобы положения объектов на карте сохранялись.
Так в чем проблема?
Карту с объектами поместите в контейнер, и двигайте контейнер по странице - все его объекты будут двигаться вместе с ним. А "зажатие мышкой" можно сделать с помощью плагина.
Контейнер может быть больше страницы по размерам, и видна будет только та его часть, что проецируется на страницу.

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Пятница, 19 Февраль 2010, 19:43 | Сообщение # 50
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Peter)
Контейнер может быть больше страницы по размерам, и видна будет только та его часть, что проецируется на страницу.

ну вот и я о том же, а если не нужно проецировать на всю страницу, то вложите контейнер с картой в другой контейнер поменьше нужного размера.
 
PeterДата: Пятница, 19 Февраль 2010, 19:56 | Сообщение # 51
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
то вложите контейнер с картой в другой контейнер поменьше нужного размера.

Совершенно справедливо!
Единственное, о чем нужно помнить, - координаты объектов внутри контейнера отсчитываются от верхнего левого угла контейнера (т.е. родительского объекта), а не главного окна.

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
GorezcaidДата: Пятница, 19 Февраль 2010, 20:08 | Сообщение # 52
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Quote (DEMBEL)
про клаву пока нет ничего, а мы говорим про монитор мышки - команда zmSetMouseMonitor, см. справку и демку. События нажатия/отпускания кнопок обрабатываются в указанной в команде подпрограмме
(F6->Actions->вкладка Subroutines).

У меня русифицированная версия Neobook,мне сложновато понять

Quote (DEMBEL)
(F6->Actions->вкладка Subroutines)

На английском не работал(плохо понимаю),легче сказать F6->Команды->вкладка Шаблоны сценариев(подпрограммы))

Не существует в zmFunctions 1.0b команда zmSetMouseMonitor,подождите...

Добавлено (19 Февраль 2010, 20:08)
---------------------------------------------
Я скачивал плагин через форум http://mmbuilder.ru/forum/37-1610-1
Но такой функции нет,по крайней мере в этой версии,ПОМОГИТЕ раздобыть этот плагин.

 
DEMBELДата: Пятница, 19 Февраль 2010, 20:13 | Сообщение # 53
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
ну в той же ветке далее... пост 209
 
GorezcaidДата: Пятница, 19 Февраль 2010, 20:19 | Сообщение # 54
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
А насчет объектов:Функция GetObjectHandle мне не по силам,знаю что
Назначение:Получить "Handle" дескриптор объекта (HWND). Обычно используется разработчиками Plug-In-ов.
GetObjectHandle "object name" "variable"
object name -Имя объекта.
variable -Имя переменной, в которой будет храниться дескриптор.
Пример:GetObjectHandle "ListBox1" "[Handle]"
— это неотрицательное целое число. Когда мы открываем существующий файл или создаем новый файл, ядро возвращает процессу файловый дескриптор.

Но для меня пока-что это ничего не означает.

 
PeterДата: Пятница, 19 Февраль 2010, 20:26 | Сообщение # 55
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (Gorezcaid)
Но для меня пока-что это ничего не означает.

И это - хорошо!
Gorezcaid, не забивайте себе голову ненужным хламом.
В практической работе с NeoBook никакие дескрипторы не нужны.
Исключение составляют лишь отдельные плагины, и даже в этих случаях воспринимайте "дескриптор" просто как обычную текстовую информацию.

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
GorezcaidДата: Пятница, 19 Февраль 2010, 20:30 | Сообщение # 56
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
"дескриптор" выдаёт скрытый код объекта?
 
DEMBELДата: Пятница, 19 Февраль 2010, 20:31 | Сообщение # 57
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Короче говоря, дескриптор - уникальный номер каждого обьекта. С данным плагином он может использоваться в целях проверки, что действие (мониторинг мыши) выполняется для конкретного нужного обьекта, и ни для какого другого. А так используется редко.
 
GorezcaidДата: Пятница, 19 Февраль 2010, 20:45 | Сообщение # 58
Постоянный участник
Группа: Проверенные
Сообщений: 208
Репутация: 4
Награды: 2
Статус: Offline
Теперь понятно,я понял какое дополнение к плагину и функция zmSetMouseMonitor,она просто следит за мышкой и сохраняет результат в [zmMouseCode],а вот zmMWH
прокручивание колёсика мыши в любую сторону,а в разные можна зделать?
Это всё упрощает работу по созданию приложений.
Извеняюсь,что задаю вопросы не по теме,а можна в форуме создать раздел "вопроссы не по теме",но о Neobook,что бы не создавать лишние темы?

Сообщение отредактировал Gorezcaid - Пятница, 19 Февраль 2010, 20:48
 
DEMBELДата: Пятница, 19 Февраль 2010, 20:48 | Сообщение # 59
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Gorezcaid)
а в разные можна зделать?

над этим ведется работа
 
СергейДата: Пятница, 19 Февраль 2010, 22:21 | Сообщение # 60
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline
Quote (DEMBEL)
ну вот и я о том же, а если не нужно проецировать на всю страницу, то вложите контейнер с картой в другой контейнер поменьше нужного размера.
по второму кругу поехали?! уже реализовал же суть в последнем приклепленом проекте, там требовалось только расчитать грамотно координаты перемещения, а вы опять ушли от этой сути и к ней же вернулись :D

Добавлено (19 Февраль 2010, 22:21)
---------------------------------------------





Сообщение отредактировал Сергей - Пятница, 19 Февраль 2010, 22:23
 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Перемещение группы объектов
Страница 2 из 3«123»
Поиск: