Discusión sobre el artículo "DoEasy. Funciones de servicio (Parte 2): Patrón "Barra interior"" - página 2

 
Alexey Viktorov #:

Este idiota artificial puede reproducir cualquier basura acumulada en las fichas. Te he mostrado que será un patrón diferente. Diferente.

¿No es un poco arrogante asumir que todos aquellos cuyos enlaces encabezan Google son idiotas o basura?

 

Gracias.
Del artículo: - "Como se puede ver todo funciona como se anuncia. Dibujar patrones como dibujos tiene algunos retrasos. Nos ocuparemos de ello."
El retraso se produce debido a la búsqueda de objetos creados por la biblioteca en el gráfico. Como esta búsqueda ya es sincrónica. Es necesario eliminar los objetos de información en el gráfico y crear otros nuevos. Entonces será asíncrona.

de la ayuda:
Puede utilizar ObjectFind() o cualquier función que pida propiedades de objetos, por ejemplo de la forma ObjectGetXXX, para comprobar el resultado de la ejecución. Pero debe tener en cuenta que tales funciones se colocan al final de la cola de comandos del gráfico y esperan el resultado de la ejecución (porque son llamadas síncronas), es decir, pueden consumir mucho tiempo. Debe tener en cuenta esta circunstancia si trabaja con un gran número de objetos en el gráfico.

Esto es lo que ocurre aquí, de ahí el retraso.

 
BmC #:

Gracias.
Del artículo: - "Como se puede ver todo funciona como se anuncia. Dibujar patrones como dibujos tiene algunos retrasos. Nos ocuparemos de ello."
El retraso se produce debido a la búsqueda de objetos creados por la biblioteca en el gráfico. Como esta búsqueda ya es sincrónica. Es necesario eliminar los objetos de información en el gráfico y crear otros nuevos. Entonces será asíncrona.

de la ayuda:
Puede utilizar ObjectFind() o cualquier función que pida propiedades de objetos, por ejemplo de la forma ObjectGetXXX, para comprobar el resultado de la ejecución. Pero debe tener en cuenta que dichas funciones se colocan al final de la cola de comandos del gráfico y esperan el resultado de la ejecución (porque son llamadas síncronas), es decir, pueden consumir mucho tiempo. Debe tener en cuenta este hecho si trabaja con un gran número de objetos en el gráfico.

Esto es lo que ocurre aquí, de ahí el retraso.

No se buscan objetos en el gráfico, sino objetos de clase en memoria. Pero ya lo solucionaremos, claro.

 
Artyom Trishkin #:

La búsqueda se realiza no por objetos en el gráfico, sino por objetos de clase en memoria. Pero ya lo resolveremos, por supuesto.

Cualquier cambio de un objeto en el gráfico provoca una búsqueda.
Tu algoritmo:
1. buscas un objeto de clase en la memoria (tu biblioteca)
2. cambias una propiedad de un objeto de clase en la memoria
3. no borras un objeto en el gráfico, lo mantienes en el gráfico.
4. el terminal empieza a llamar a la función de búsqueda de un objeto en el gráfico ya que no lo creas, sino que lo cambias.
5. encuentra un objeto en el gráfico en el que necesitas cambiar una propiedad del punto 2.

Esto es sobre lo que te escribí. Pensé que lo entenderías)).

Cada vez que mueves el ratón sobre un patrón, creas un objeto. El cual permanece en el gráfico. Al pasar el ratón sobre 10 patrones, se crean 10 objetos en el gráfico.

ObjectSetInteger



Nota de la ayuda: ........
Pero debe tener en cuenta que este tipo de funciones se colocan al final de la cola de comandos del gráfico de otra persona y esperan el resultado de la ejecución, es decir, pueden llevar mucho tiempo. Debe tener en cuenta esta circunstancia si trabaja con un gran número de objetos en el gráfico.
¡Ya tiene muchos objetos en el gráfico!


Por eso tiene un retraso al volver a pasar el ratón, porque no se crea como la primera vez, sino que cambia las propiedades de visualización para este periodo.


 
BmC #:

Cualquier cambio de un objeto en el gráfico provoca una búsqueda.
Tu algoritmo:
1. buscas un objeto de clases en memoria (tu biblioteca)
2. cambias una propiedad de un objeto de clases en memoria
3. no borras un objeto en el gráfico, permanece en el gráfico.
4. el terminal empieza a llamar a la función de búsqueda de un objeto en el gráfico ya que no lo creas, sino que lo cambias.
5. encuentra un objeto en el gráfico en el que necesitas cambiar una propiedad del punto 2.

Sobre esto te escribí. Pensé que lo entenderías)).

Cada vez que mueves el ratón sobre un patrón, creas un objeto. Este objeto permanece en el gráfico. 10 patrones sobre los que pasé el ratón, se crearon 10 objetos en el gráfico.

ObjectSetInteger



Nota de la ayuda: ........
Pero debe tener en cuenta que estas funciones se colocan al final de la cola de comandos del gráfico de otra persona y esperan el resultado de la ejecución, es decir, pueden llevar mucho tiempo. Debe tener en cuenta esta circunstancia si trabaja con un gran número de objetos en un gráfico.
¡Ya tiene muchos objetos en el gráfico!


Por eso tiene un retraso al volver a pasar el ratón, porque no se crea como la primera vez, sino que cambia las propiedades a mostrar en este periodo.


Este comportamiento no debería ocurrir, por supuesto. O es una reaparición debida a actualizaciones pasadas (ahora tengo todo el gráfico roto ahí - todo depende de los demás y responde a eventos), o es un fallo mío de diseño. Pero después de algunas actualizaciones recientes del terminal todos los gráficos de la biblioteca están rotos. He cargado la vieja build guardada - todo funciona allí. Tan pronto como se actualizó a la nueva, todo se estrelló. Por eso peco de actualizaciones pasadas. No tengo tiempo para buscar las razones todavía.

Pero el hecho de que se creen muchos objetos y no se borren - esto definitivamente no estaba planeado.

Gracias por tu respuesta, lo investigaré cuando llegue el momento.

 
Gran artículo, ¡gracias por el trabajo realizado!
 
Hola. ¿El proyecto DoEasy ya no es compatible? Al intentar compilar, hay muchos errores: conversión de parámetros, redefinición del valor por defecto, etc. ¿O quizás puedas descargar la última versión correcta en algún sitio?
 
leonerd proyecto DoEasy ya no es compatible? Al intentar compilar, hay muchos errores: conversión de parámetros, redefinición del valor por defecto, etc. ¿O tal vez puedas descargar la última versión correcta en algún sitio?

Hola. El desarrollo está suspendido por ahora. Pero puedes solucionar todos los errores tú mismo. Lo más probable es que el problema sea que int y uint (long/ulong, short/ushort, etc. son tipos diferentes ahora).

Lo más fácil es simplemente añadir una conversión de tipos explícita donde el compilador informe de un error, por ejemplo: int x = (int)y; en caso de que y sea de tipo uint, etc.

PD. Aunque no. No es tan sencillo. Hay que hacer muchas correcciones. Lo arreglaré cuando tenga tiempo. Todavía no lo tengo, por desgracia.