Делаем краудсорсовый проект по Canvas - страница 6

 
Комбинатор:

Есть фундаментальный вопрос.

Есть допустим два приложения, панельки, индикатора, на одном графике. Каждый из них должен на своей канве рисовать или оба на общей?

В обоих случаях есть вопросы.

предлагаю сейчас сделать просто обработку некой канвы. Со всеми элементами на ней.
Все равно мы не сможем контролировать количество таких запущенных экземпляров с канвасами (иначе углубимся в функции ОС для "многооконного интерфейса" на канве. До этого может когда-то дойдет, но не сейчас)

Как следствие - взаимодействия между канвасами на уровне отправки "оконных событий" между ними предлагаю сейчас не делать.

Также я сейчас не представляю, как несколько ex5 будут обмениваться данными по содержимому одного общего канваса.

 
Vasiliy Sokolov:
С клавиатурой как раз все более менее понятно. Есть событие нажатие клавиши, есть код этой клавиши. Чего еще хотеть?

к сожалению нет полноты кода. сейчас чартовые события не различают A и a

По этому вопросу в СД тоже уже написал

 
Комбинатор:
Кстати как по мне ооочень упростило бы жизнь в плане нормального DND введение события OnMouseDown.

событие CHART_MOUSE_MOVE  в sparam шлёт состояние кнопок и клавы. = левая, парвая, ctrl, shift, alt. 

Другими словами DND реализуем уже сейчас.

 
Есть еще один вопрос. Кто знает, поясните пожалуйста. Зачем делать поле ввода по новой технологии, если этот элемент управления и так представлен одним объектом? Какие преимущества, с точки зрения экономии ресурсов или новых возможностей это может дать? Короче, - зачем?
 
o_O:

Другими словами DND реализуем уже сейчас.

Да, я в курсе, потому что реализовывал в своей недавней поделке. Так вот сейчас DND можно реализовать только через ж*пу.

Во-первых для нормального перетаскивания надо отрубать и включать некоторые свойства графика, иначе график таскается вместе с канвасом, ну их конечно в почти любом случае отключать придется.

Во-вторых MouseMove не привязан к объекту, как Click например, поэтому если под мышкой два объекта, тягаться будут оба. В стандартной библиотеке так и есть между прочим.

И так будет если нет внутренней логики выбирающей какой объект тягать.

Так вот вторую проблему события MoseDown вроде как эффективно решает.

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

 
Комбинатор:

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

Тормоза если и есть, то незаметны невооруженным глазом. В моей панели в одно время MouseMove дясяткам тысяч элементов рассылался, в т.ч. невидимым, потом зделал более умную рассылку, но визуально скорости это не прибавило.
 
Комбинатор:

Да, я в курсе, потому что реализовывал в своей недавней поделке. Так вот сейчас DND можно реализовать только через ж*пу.

Во-первых для нормального перетаскивания надо отрубать и включать некоторые свойства графика, иначе график таскается вместе с канвасом, ну их конечно в почти любом случае отключать придется.

Во-вторых MouseMove не привязан к объекту, как Click например, поэтому если под мышкой два объекта, тягаться будут оба. В стандартной библиотеке так и есть между прочим.

И так будет если нет внутренней логики выбирающей какой объект тягать.

Так вот вторую проблему события MoseDown вроде как эффективно решает.

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

ты ведь понимаешь, что если мы уходим в канвас - то мы сами по себе. Уже нет никаких высокоуровневых событий. Ни объектов МТ которые могут их принять

Если только движения мышки и состояния кнопок. я бы не называл это ж*пой )).  Это просто низкий событийный уровень.

 
Vasiliy Sokolov:
Тормоза если и есть, то незаметны невооруженным глазом. В моей панели в одно время MouseMove дясяткам тысяч элементов рассылался, в т.ч. невидимым, потом зделал более умную рассылку, но визуально скорости это не прибавило.
подтверждаю.
надцать тысяч объектов не делают погоды в скорости.
 
o_O:
надцать тысяч объектов не делают погоды в скорости.
Вопрос не в количестве объектов, а в количестве кодов. И даже если один код-индикатор всегда делает что-то тяжелое по ChartEvent.
o_O:

ты ведь понимаешь, что если мы уходим в канвас - то мы сами по себе. Уже нет никаких высокоуровневых событий. Ни объектов МТ которые могут их принять

Если только движения мышки и состояния кнопок. я бы не называл это ж*пой )).  Это просто низкий событийный уровень.

Есть еще уровень взаимодействия с другими кодами. Хотя бы между несколькими инстансами одного индикатора например. Его надо учитывать, вот я про него.

А так да, все это понятно

 
Комбинатор:

Есть еще уровень взаимодействия с другими кодами. Хотя бы между несколькими инстансами одного индикатора например. Его надо учитывать, вот я про него.

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

несколько экземпляров индкиатора выводят на один канвас? ну не знаю. чёт стремно.

Причина обращения: