Realización de un proyecto crowdsourced en Canvas - página 31
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Parafraseando: Acabarás con un EA con interfaz, aunque una parte la haga yo y la otra tú. Esto no le impedirá juntar las dos partes en un EA.
De todos modos, eso es lo que haremos. Publicaré el constructor y enseñaré a diseñar en él aquí gui. Todavía no hay documentación, así que si estás interesado, estate atento al tutorial.
¡Copiado!
No he grabado el vídeo, pero te envío un ejemplo.
hay 600 listas desplegables.
Mueve el ratón - con cada evento y cambio de color el CCanvas general se redibuja.
Puedes ver el tamaño final en las propiedades del mapa de bits - 1500x600 px (comparado con tus 800x500 y 250ms de retraso). Lo que equivale a 900.000 píxeles, y todos se redibujan al instante. No hay segundos de por medio.
Cada lista se representa primero en su propio lienzo en su propio tamaño (para que no se desborde) y luego se introduce en el conjunto. Así que tenemos 600 llamadas ResourceCreate por evento de ratón.
Esto significa, como se puede ver por la velocidad de reacción, que los fotogramas son suficientes para mostrar los dibujos animados.
Los desarrolladores de MT dieron una herramienta satisfactoria sin retrasos (me refiero a ResourceCreate bitmaps)
¿Es posible ver este ejemplo en código abierto?
Es triste que el proyecto haya entrado en modo cerrado (
No ha ido a ninguna parte.
¿Es posible ver este ejemplo en código abierto?
¿Qué es lo que no entiendes de los kanvas?
1. Reacciona a los eventos como todos los demás objetos gráficos. En otras palabras, puede seguir las coordenadas del ratón mientras se mueve, reaccionar a los eventos de clic del ratón y del teclado.
2. puede cambiar independientemente el color de cada píxel.
¿Qué más necesitas? Y entonces se necesita algo de cerebro y la voluntad de perder mucho tiempo inútilmente.
¿Qué es lo que no entiendes de trabajar con un kanvas?
1. Reacciona a los eventos como todos los demás objetos gráficos. Es decir, puede seguir las coordenadas del ratón mientras se mueve, reaccionar a los eventos de clic del ratón y del teclado.
2. puede cambiar independientemente el color de cada píxel.
¿Qué más necesitas? Lo siguiente que necesitas es algo de cerebro y ganas de perder mucho tiempo.
Bueno, el kanvas en sí no reacciona a los eventos. Y el hecho de poder cambiar cada píxel es evidente.
Me interesaba la implementación de un rediseño fragmentado del lienzo.
Pero parece que muchos se han decantado por el repintado completo del lienzo aunque sólo haya que redibujar una pequeña parte, es decir, un solo control.
Bueno, el kanvas en sí no reacciona a los eventos. Y el hecho de poder cambiar cada píxel es evidente.
Me interesaba la implementación del redibujado por partes del lienzo.
Pero parece que muchos se han decantado por el repintado completo del lienzo aunque sólo haya que repintar una pequeña parte, es decir, un control.
El lienzo en sí no reacciona a los acontecimientos, pero no existe por sí mismo.
Redistribución fragmentaria: vale la pena empezar a hacerlo y se aclarará si existe ese objetivo. Creo que debería haber una matriz de controles, cada control tiene límites definidos. Cuando necesitas redibujar un control, tienes que ir a través de todos los controles, ver qué más cae en esta área y sólo redibujarlos. Al menos así.
El kanvas en sí no es reactivo, pero no existe por sí mismo.
La redistribución fragmentada: vale la pena empezar a hacerla y se aclarará si existe ese objetivo. Creo que debería haber una matriz de controles, cada control tiene límites definidos. Cuando necesitas redibujar un control, tienes que ir a través de todos los controles, ver qué más cae en esta área y sólo redibujarlos. Al menos de esta manera.
Así es exactamente como lo construí. Básicamente tomé la biblioteca estándar como base, porque tiene muy bien trabajados los momentos de transferencia de eventos y algunas otras cosas. Anatoly crea agrupaciones para cada clase de elementos, mientras que en el estándar todo se reduce a un objeto básico.
Como resultado, WndObject contiene la descripción completa de las propiedades más comunes de cualquier control (tamaño, ubicación, color de fondo, color del borde, grosor del borde, texto, imagen, etc.). Además la misma clase contiene una referencia al control padre. Es decir, si no se especifica ningún padre para el control, éste crea su propio objeto kanvas en el gráfico, de lo contrario se dibuja en el kanvas del padre. Dependiendo de su posición (autónomo, esclavo) también se calculan las coordenadas de la ubicación del elemento. Además, el mismo objeto tiene un array que contiene la descripción original de la zona madre ocupada por el elemento. La idea en sí es la siguiente: si sólo cambia el elemento en sí, antes de que se redibuje, el área de píxeles se rellena con la matriz de píxeles padre, y sólo entonces se aplica el nuevo estado del control. este enfoque no requiere repintar todo el lienzo cada vez, porque el repintado está pasando por alto todos los elementos de la matriz, y recursivamente con los elementos anidados. Para el renderizado y la actualización de un control en particular, sugerimos dos funciones: una que dibuja sobre el padre (o sobre un lienzo en blanco) al crear todo el control, y otra que actualiza la visualización de sólo el control dado. Así que es así.
Todavía "perdido" en el modelo de eventos: después de que los cambios que las capas deben ser redibujados.
Nikolai en sus ejemplos muestra que en principio no es necesario molestarse en almacenar los datos de las zonas locales porque el repintado de todo el lienzo funciona tan rápido que no es necesario bajar a los detalles, basta con repintar siempre todo de una vez.