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

 

Por cierto, ya que la gente está tratando con un

esta es una captura de pantalla tomada al azar de yandex, la interfaz cliente-servidor GUI, y a través de la red. No es necesario reinventar la rueda...

(un segundo de publicidad) Pi es realmente genial. Ahí vive un tungsteno honesto :-)

 
Алексей Барбашин:

Sí, ese es el principal problema. El mismo mercado prohíbe el uso de dlls, por lo que hay que reinventar la rueda. Ok, si alguien piensa que la GUI no es necesaria, pero cualquier cálculo largo y complejo en cualquier caso en un hilo no funcionará, ¡todo se colgará! Así que hay que hacerlo en un dll... que está prohibido en el mercado...

Y así sucesivamente. Por esta razón tengo que dibujar y resolver todo con métodos mql.

De hecho, la separación de la GUI y la lógica en hilos es, por supuesto, ya posible. Aquí los chicos ya han discutido el tema del paralelismo https://www.mql5.com/ru/forum/288985/page5#comment_14722396.

Como resultado, el formulario en sí podría dejarse en el hilo principal, como se hace en winnda, mientras que cualquier cálculo adicional podría trasladarse a la ejecución en "segundo plano". Así funciona para Windows, Linux y Android.

Sí, he visto ese artículo, que es como otra muletilla con un montón de código que no quiero ni mirar.
Cuando todo es mucho más rápido y fácil de hacer en dll.
Por cierto y mql Socket yWebRequest me di por vencido, porque cuando el servidor mql no está disponible, debido a la ruptura de la conexión,
Las funciones de socket o webrequest están bloqueadas, así que téngalo en cuenta, si decide construir aplicaciones sobre sockets mql y webrequests.

 
Maxim Kuznetsov:

Por cierto, mientras la gente haga cosas que ya se han hecho antes:

Esta es una captura de pantalla aleatoria tomada de yandex, interfaz cliente-servidor GUI, y a través de la red. No es necesario reinventar la rueda...

(un segundo de publicidad) Pi es realmente genial. El tungsteno honesto vive allí :-)

por cierto y Scratch en la captura de pantalla es más o menos lo que Konov quiere hacer, armar un algoritmo de dados.

 
Maxim Kuznetsov:

es porque microsoft está al mando :-)

¿Por qué crees que la gente pierde sus datos de acceso cuando actualiza y activa productos en plataformas piratas?

¿Qué tieneque ver Microsoft con las claves de firma de dlls? Eso sólo identifica al desarrollador.
Las claves para firmar el dll, pueden ser emitidas por MQ, a aquellos que han sido plenamente identificados en el mercado.
Con esta clave el desarrollador firma su dll para identificar quién la ha escrito.
La clave de firma dll no afecta a la activación del producto.

 
Maxim Kuznetsov:

///

¿Puede entender que no hay una interfaz gráfica de usuario adecuada en el MKL? El que tienes es del 95. Qué vergüenza... Y tú, con las peticiones de una interfaz gráfica de terceros, ¿has pensado en cómo utilizarla en MT? ¿Cómo se conecta? O no des una miel, deja que te cuente una perogrullada).

 
Реter Konow:

¿Puede entender que no hay una interfaz gráfica de usuario adecuada en el MKL? El que tienes es del 95. Qué vergüenza... Y tú, con las peticiones de una interfaz gráfica de terceros, ¿has pensado en cómo utilizarla en MT? ¿Cómo se conecta? O no te des una miel, déjame decirte una perogrullada).

Peter, probablemente te abriré los ojos y hablaré por Maxim: Maxim conoce el tema mejor que nadie y hace aproximadamente un año y medio publicó su versión de GUI, más o menos formándola sobre la base del markup. Además, la interfaz gráfica de usuario se construyó en un entorno externo, pero tenía una interacción total con el programa (indicador, Asesor Experto).

Maxim, perdón por responder a tu pregunta.

Sin embargo, me gustaría volver al tema. He sacado una imagen de un artículo sobre el funcionamiento de la biblioteca estándar:


Esta captura de pantalla muestra la composición del diálogo de forma simplificada.

En esta versión, el Borde es el elemento principal que crea el objeto lienzo en el gráfico y todos los objetos esclavos se dibujan en él. O mejor dicho, se dibuja en función del objeto esclavo.

El botón de cierre se dibuja en el pie de foto y el pie de foto se dibuja en el borde, que a su vez se dibuja en el lienzo con todos los elementos dibujados.

 
Алексей Барбашин:

Peter, probablemente te abriré los ojos y te lo diré por Maxim: Maxim está más familiarizado con este tema que nadie y hace aproximadamente un año y medio publicó su versión de GUI, formada como a base de markup. Además, la interfaz gráfica de usuario se construyó en un entorno externo, pero tenía una interacción total con el programa (indicador, Asesor Experto).

Maxim, perdón por responder a tu pregunta.

Sin embargo, me gustaría volver al tema. He sacado una imagen de un artículo sobre el funcionamiento de la biblioteca estándar:


Esta captura de pantalla muestra la composición del diálogo de forma simplificada.

En esta versión, el Borde es el elemento principal que crea el objeto lienzo en el gráfico y todos los objetos esclavos se dibujan en él. O mejor dicho, se dibuja en función del objeto esclavo.

El botón de cierre se dibuja en el título y el título se dibuja en el borde y este botón con todos los elementos dibujados se dibuja en el lienzo.

No sé lo que posteó y lo que hizo en la GUI importa, pero en mis hilos no hizo una sola sugerencia técnica, solución o discusión sobre el tema. Sólo trolling vacío, señalando soluciones de terceros e instando a no reinventar la rueda.

Volviendo al tema que nos ocupa.

Por lo que conozco de la biblioteca estándar (muy poco en realidad), allí los elementos y las ventanas se componen de objetos MT. Es decir, en nuestro contexto, no se dibujan en el lienzo. Por supuesto, se dibujan, pero no en nuestro lienzo, lo que nos impide manipular los colores de los píxeles, crear gradientes de superficie y mucho más.

En teoría, podríamos tomar la estructura de la biblioteca, copiarla y hacer un análogo en el kanvas. En teoría...

El problema es que el propio CCanvas no es adecuado para hacer una GUI en él. ¿Por qué? Porque el sistema kanvas se utiliza principalmente para las primitivas gráficas. Así que, en esencia, esta clase no proporciona nada más que primitivas. El arquetipo de GUI debe ser construido por usted mismo. Y en este caso, la clase no es necesaria. Es más conveniente arreglárselas con sus propias soluciones. Después de todo, se puede dibujar un marcador rectangular sin la clase. Al igual que se puede crear o cargar un lienzo. Es muy sencillo. Por lo tanto, he preferido mi propia solución.

Pero alguien no puede prescindir de CCanvas. Por eso no insisto en ello.

 
Реter Konow:

No sé lo que ha publicado y lo que ha hecho en materia de GUI, pero en mis hilos no ha hecho ninguna sugerencia técnica, ninguna solución y ninguna discusión sobre el tema. Sólo trolling vacío, señalando soluciones de terceros e instando a no reinventar la rueda.

Volviendo al tema que nos ocupa.

Por lo que conozco de la biblioteca estándar (muy poco en realidad), allí los elementos y las ventanas se componen de objetos MT. Es decir, en nuestro contexto, no se dibujan en el lienzo. Por supuesto, se dibujan, pero no en nuestro lienzo, lo que nos impide manipular los colores de los píxeles, crear gradientes de superficie y mucho más.

En teoría, podríamos tomar la estructura de la biblioteca, copiarla y hacer un análogo en el kanvas. En teoría...

El problema es que el propio CCanvas no es adecuado para hacer una GUI en él. ¿Por qué? Porque el sistema kanvas se utiliza principalmente para las primitivas gráficas. Así que, en esencia, esta clase no proporciona nada más que primitivas. El arquetipo de GUI debe ser construido por usted mismo. Y en este caso, la clase no es necesaria. Es más conveniente arreglárselas con sus propias soluciones. Después de todo, se puede dibujar un marcador rectangular sin la clase. Al igual que se puede crear o cargar un lienzo. Es muy sencillo. Por lo tanto, he preferido mi propia solución.

Pero alguien no puede prescindir de CCanvas. Así que no insisto en ello.

¡Alto! Peter (¿verdad?), hagamos algunas convenciones para entendernos. Condición 1: No llamaremos a un lienzo una clase CCanvas sino simplemente un lienzo para dibujar una parte de la pantalla o un recurso específicamente. La clase CCanvas no tiene nada que ver con todo esto y no nos detendremos en ella en absoluto. Simplemente proporciona funciones para dibujar en ese lienzo y ya está. De hecho, podemos dibujar utilizando un montón de métodos diferentes.

Por "dibujar" entenderemos la formación de una matriz de píxeles, a partir de la cual se crea un recurso que luego se coloca en el gráfico.

 
Алексей Барбашин:

¡Alto! Peter (¿cierto?), aceptemos algunas convenciones para el entendimiento mutuo. Condición 1: No llamaremos a CCanvas una clase, sino simplemente un lienzo para dibujar parte de la pantalla, o específicamente un recurso. La clase CCanvas no tiene nada que ver con todo esto y no nos detendremos en ella en absoluto. Simplemente proporciona funciones para dibujar en ese lienzo y ya está. De hecho, podemos dibujar utilizando un montón de métodos diferentes.

Por "dibujar" entenderemos la formación de una matriz de píxeles en base a la cual se crea un recurso que luego se coloca en el gráfico.

Así es.

 
Алексей Барбашин:

Peter, probablemente te abriré los ojos y te lo diré por Maxim: Maxim está más familiarizado con este tema que nadie y hace aproximadamente un año y medio publicó su versión de GUI, que se formó sobre la base de markup. Además, la interfaz gráfica de usuario se construyó en un entorno externo, pero tenía una interacción total con el programa (indicador, Asesor Experto).

Maxim, perdón por responder a tu pregunta.

Sin embargo, me gustaría volver al tema. He sacado una imagen de un artículo sobre el funcionamiento de la biblioteca estándar:


Esta captura de pantalla muestra la composición del diálogo de forma simplificada.

En esta versión, el Borde es el elemento principal que crea el objeto lienzo en el gráfico y todos los objetos esclavos se dibujan en él. O mejor dicho, se dibuja en función del objeto esclavo.

El botón de cierre se dibuja en Caption y Caption se dibuja en Border y todos los elementos se dibujan en el lienzo.

No es del todo correcto :-)

Pongo una interfaz a una DLL Tcl (que es el lenguaje común de las herramientas), que tiene un gráfico Tk que se comparte como una GUI en Python/Ruby/etc.

el objetivo no era conseguir una GUI, sino un bonito subproducto :-)

tcl.Eval("button .pressme -text {Hello Peter}; pack .pressme") ;

en mi opinión, cómodo, y sobre todo corto :-)

No estoy agitando a nadie - conozco tcl/tk, lo uso, comparto mis experiencias (ver sourceforge atcl).

Razón de la queja: