Making a crowdsourced project on Canvas - page 7

 
o_O:

unfortunately there is no completeness to the code. right now chart events do not distinguish between A and a

I already wrote about it in SD.

good news from the sd on this issue

the next build will addTerminalInfoInteger constants for status of CapsLock and Shift

now they are undocumented.

1020 - CapsLock
1016 - Shift
1255 - current input language code

i.e. edit is already halfway working. ))

The second task is to teach the chart to capture space and enter.

 
Vasiliy Sokolov:
If there is any lag, it's invisible to the naked eye. In my panel at one time MouseMove was sending out thousands of items, including invisible, then I made a smarter mailing, but visually it did not add to the speed.
There are definitely lags. It depends on the number of items. I checked it. When number of objects starts to exceed 400 -500 drag and drop my windows starts to slow down... I've been working on improving code efficiency for months, but I haven't managed to overcome this effect. I think the more powerful the computer is, the more objects it drags on, the slowness will be unnoticeable.
 
Реter Konow:
There are definitely brakes. It depends on the number of objects. I've checked. When number of objects starts to exceed 400-500, dragging and dropping my windows starts to slow down... I've been working on improving code efficiency for months, but I haven't managed to overcome this effect. I think the more powerful the computer is, the more objects the lag will remain unnoticeable.
It is the event delivery algorithm + minimum response of the item to the passed event that influences performance. It seems that in your case the slowdown was not because of the event itself, but because of the algorithms that handled these events.
 
o_O:

Do multiple instances of an indikator output to a single canvass? I don't know. it's a bit creepy.

Nah. All I need is a MouseDown event, I'll be happy.
 
Комбинатор:
Nah. Anyway, all I need is the MouseDown event, I'll
Monitor the CHARTEVENT_MOUSE_MOVE event, it transmits the state of the mouse, Crtl and Shift keys.
 
Vasiliy Sokolov:

It seems to me that after Anatoly's articles, it's at least a strange pastime to create the same eggs in profile again. Graphics is not a hot topic for MT at all.

  • Users don't need graphical interfaces. As a consequence, it's impossible to monitor GUI and its development will never pay off.
  • If you want to raise the skills, it's better to immediately get a job as a junior. So at least you will start making some money right away and raise your skills slowly.
  • Too narrow a target audience. Who needs libraries? - Absolutely no one, except for a handful of programmers, and they have long since written all the libraries they need. For example I have two graphics libraries of my own.

I do not want to teach anyone here, but a piece of advice: guys, smell the powder. Learn how to work with users. Learn their psychology. Learn how to monitor their ideas. Then quickly come down to earth and you will reason in a completely different way. I, too, once believed in some special and beautiful ideas, but all this nonsense, it does not work. What you are discussing here is of no use to anyone but you.

+ that's right

The only time I told a user - let's make a really cool and beautiful interface !

What they really need is an Expert Advisor without any flowery embellishments and additional functionality - i.e. without a nice user-friendly interface!

The most important thing that users want is the functioning of the product according to the terms of reference.

We all know that the development of the interface + on design - takes a decent amount of time yet for debugging is spent a very expensive resource TIME!

 
Ilyas:
Monitor CHARTEVENT_MOUSE_MOVE event, it sends state of mouse, Crtl and Shift keys.
As I explained above, this event is not tied to the object and is sent too often. Not tied to an object is more important.
 
Ilyas:
Monitor the CHARTEVENT_MOUSE_MOVE event, it transmits the state of mouse, Crtl and Shift keys.

is not exactly what is expected.

The OBJECT_CLICK event is generated after the mouse is lifted and cannot be tracked when the mouse is pressed on an object.

I want a start event. when the mouse is pressed on the object.

Combinator:
I explained above, this event is not linked to the object and is sent too often. Not tied to the object is more important.
CHARTEVENT_OBJECT_DRAG - as I remember it is generated not at the beginning of movement but after mouse release?
 
o_O:
CHARTEVENT_OBJECT_DRAG is almost useless event. Because it signals the end of dragging a graphical object in the standard way (i.e. it should be selected, and selected objects are perfectly deleted by pressing del)
 
Vasiliy Sokolov:
Performance is affected by the event delivery algorithm + minimum item response to the passed event. It seems that in your case the slowness was not because of the event itself but because of the algorithms that handled these events.

Look, event delivery and algorithm are the simplest possible: In OnChartEvent() on MouseMove event, inside which the state of pressed left mouse button is also fixed, we catch the event of window movement handle pressing. Next, call the window moving function in which an X and Y shift (using ObjectSetInteger()) equal to the current cursor shift is applied to all window objects inside the loop. That's all.

At the same time, it is clear that the more objects in the window, the more objects must be moved. Apparently, a large number of objects to be moved is what caused the slowdown...