Realización de un proyecto crowdsourced en Canvas - página 7

 
o_O:

lamentablemente el código no es completo. ahora mismo los eventos de la carta no distinguen entre A y a

Ya escribí sobre ello en SD.

buenas noticias de la sd sobre este tema

la próxima versión añadirá las constantesTerminalInfoInteger para el estado de CapsLock y Shift

ahora son indocumentados.

1020 - CapsLock
1016 - Shift
1255 - código del idioma de entrada actual

es decir, la edición ya está a medio camino. ))

La segunda tarea es enseñar a la carta a captar el espacio y entrar.

 
Vasiliy Sokolov:
Si hay algún retraso, es invisible a simple vista. En mi panel en un momento dado MouseMove estaba enviando miles de elementos, incluso invisibles, entonces hice un envío más inteligente, pero visualmente no aumentó la velocidad.
Definitivamente hay retrasos. Depende del número de artículos. Lo he comprobado. Cuando el número de objetos empieza a superar los 400 -500 de arrastrar y soltar mis ventanas empieza a ralentizarse... Llevo meses trabajando para mejorar la eficiencia del código, pero no he conseguido superar este efecto. Creo que cuanto más potente sea el ordenador, más objetos arrastra, la lentitud será imperceptible.
 
Реter Konow:
Definitivamente hay frenos. Depende del número de objetos. Lo he comprobado. Cuando el número de objetos empieza a superar los 400-500, arrastrar y soltar mis ventanas empieza a ser más lento... Llevo meses trabajando para mejorar la eficiencia del código, pero no he conseguido superar este efecto. Creo que cuanto más potente sea el ordenador, más objetos quedarán sin notar el lag.
El rendimiento se ve afectado por el algoritmo de entrega de eventos + la respuesta mínima del elemento al evento pasado. Parece que en tu caso la ralentización no era por el evento en sí, sino por los algoritmos que manejaban estos eventos.
 
o_O:

¿Salen varias instancias de un indikator en un solo lienzo? No sé. Es un poco espeluznante.

No. Todo lo que necesito es un evento MouseDown, seré feliz.
 
Комбинатор:
No. De todos modos, todo lo que necesito es el evento MouseDown, voy a
Monitoriza el evento CHARTEVENT_MOUSE_MOVE, transmite el estado del ratón, las teclas Crtl y Shift.
 
Vasiliy Sokolov:

Me parece que después de los artículos de Anatoly, es un pasatiempo cuanto menos extraño volver a crear los mismos huevos de perfil. Los gráficos no son en absoluto un tema candente para la MT.

  • Los usuarios no necesitan interfaces gráficas. En consecuencia, es imposible controlar la interfaz gráfica de usuario y su desarrollo nunca será rentable.
  • Si quieres aumentar las habilidades, es mejor que consigas inmediatamente un trabajo como junior. Así, al menos, empezarás a ganar algo de dinero desde el principio y aumentarás tus habilidades poco a poco.
  • Un público objetivo demasiado reducido. ¿Quién necesita las bibliotecas? - Absolutamente nadie, excepto un puñado de programadores, y hace tiempo que han escrito todas las bibliotecas que necesitan. Por ejemplo, tengo dos bibliotecas gráficas propias.

No quiero aleccionar a nadie aquí, pero un consejo: chicos, huelan la pólvora. Aprende a trabajar con los usuarios. Aprende su psicología. Aprende a controlar sus ideas. Entonces, baja rápidamente a la tierra y razonarás de una manera completamente diferente. Yo también creí alguna vez en algunas ideas especiales y hermosas, pero todas estas tonterías, no funcionan. Lo que estáis discutiendo aquí no le sirve a nadie más que a vosotros.

+ así es

La única vez que le dije a un usuario: ¡hagamos una interfaz realmente genial y bonita !

Lo que realmente necesitan es un Asesor Experto sin adornos floridos y funcionalidades adicionales, es decir, sin una interfaz agradable para el usuario.

Lo más importante que quieren los usuarios es que el producto funcione de acuerdo con los términos de referencia.

Todos sabemos que el desarrollo de la interfaz + en el diseño - toma una cantidad decente de tiempo sin embargo para la depuración se gasta un recurso muy caro ¡TIEMPO!

 
Ilyas:
Monitoriza el evento CHARTEVENT_MOUSE_MOVE, envía el estado del ratón, las teclas Crtl y Shift.
Como he explicado anteriormente, este evento no está vinculado al objeto y se envía con demasiada frecuencia. No estar atado a un objeto es más importante.
 
Ilyas:
Monitoriza el evento CHARTEVENT_MOUSE_MOVE, transmite el estado del ratón, las teclas Crtl y Shift.

no es exactamente lo que se espera.

El evento OBJECT_CLICK se genera después de levantar el ratón y no puede ser rastreado cuando el ratón es presionado sobre un objeto.

Quiero un evento de inicio. cuando el ratón es presionado en el objeto.

Combinador:
Ya he explicado que este evento no está vinculado al objeto y se envía con demasiada frecuencia. No estar atado al objeto es más importante.
CHARTEVENT_OBJECT_DRAG - según recuerdo se genera no al inicio del movimiento sino después de soltar el ratón?
 
o_O:
CHARTEVENT_OBJECT_DRAG es un evento casi inútil. Porque señala el fin del arrastre de un objeto gráfico de forma estándar (es decir, debe estar seleccionado, y los objetos seleccionados se eliminan perfectamente pulsando del)
 
Vasiliy Sokolov:
El rendimiento se ve afectado por el algoritmo de entrega de eventos + la respuesta mínima del elemento al evento pasado. Parece que en tu caso la lentitud no era por el evento en sí, sino por los algoritmos que manejaban estos eventos.

Mira, la entrega de eventos y el algoritmo son los más sencillos posibles: En OnChartEvent() sobre el evento MouseMove, dentro del cual también se fija el estado del botón izquierdo del ratón pulsado, capturamos el evento de la pulsación del tirador de movimiento de la ventana. A continuación, llame a la función de movimiento de la ventana en la que se aplica un desplazamiento X e Y (utilizando ObjectSetInteger()) igual al desplazamiento actual del cursor a todos los objetos de la ventana dentro del bucle. Eso es todo.

Al mismo tiempo, está claro que cuantos más objetos haya en la ventana, más objetos habrá que mover. Aparentemente, un gran número de objetos a mover es lo que causó la ralentización...