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

 
Реter Konow:

En mi implementación, los puntos A y B están representados por la ubicación de dos objetos: la coordenada X de la pista del deslizador (su inicio) y la coordenada X del deslizador.

lo mismo en la versión dibujada.

estás pensando de forma estrecha, discutiendo sobre algún ObjectGet/Set
al menos tres modelos se fusionan en el control - gráficos, eventos, datos.
no importa dónde o cómo se dibuja. puede ser en forma de texto como [.......|...]. también puede aparecer en el lienzo, o se pueden mostrar dos objetos rectángulos MT.

El modelo de eventos o datos no sufre de esto.

 
o_O:

es lo mismo en la versión dibujada.

estás pensando de forma limitada, hablando de algún ObjectGet/Set
El control fusiona al menos tres modelos: gráficos, eventos y datos.
No importa dónde y cómo se dibuje. También puede ser en forma de texto como [.......|...]. También puede aparecer en el lienzo, o dos objetos MT pueden mostrarse como rectángulo.

El modelo de eventos o datos no sufre de esto.


Sin embargo, el mecanismo no está claro para mí. Si puedes explicar con más detalle, para tener una idea general, me ayudará mucho a entender. gracias.
 

Hay una cuestión fundamental.

Digamos que hay dos aplicaciones, paneles, indicadores, en un gráfico. ¿Debe cada uno de ellos dibujar en su propio lienzo o ambos en uno común?

En ambos casos hay dudas.

 
o_O:

no sólo menos, sino ninguna (excepto bitmap_label, que es donde se dibuja todo).

Tengo curiosidad por saber cómo implementas el manejo de texto (etiqueta de texto, campo de entrada de texto). Una breve lista de problemas que tienes que resolver:

  • Trabajar con alfabetos nacionales (En las fuentes, por ejemplo, la misma Times New Roman tiene un esquema para casi todos los alfabetos, desde el inglés hasta el gran poderoso y algo de hindi).
  • Escala de texto: 6-8-10-12...72 puntos - se puede establecer el mismo tamaño de letra sin problemas. El tipo de letra Vectoral es más o menos para lo que fue creado.
  • Cursiva, negrita, subrayado: ¿qué creará para cada uno de estos tipos de letra o algoritmo de contorno?
  • Escribir/editar, controlar el cursor... hacerlo todo en forma de dibujo es una tarea infernal. Para ser honesto, no puedo ni siquiera empezar a imaginar cómo lo implementará.

Y todo esto sobre el fondo de los controles que ya funcionan "etiqueta de texto" y "etiqueta de texto con edición de texto". El único problema es el límite de tamaño de 32 caracteres y la imposibilidad de utilizar fuentes integradas.

Tardarás mucho tiempo en resolver todos estos problemas, pero como mucho resolverás el 30% de ellos. En el mejor de los casos, cientos de kilobytes de su código estarán un poco fuera de los elementos estándar, pero tendrán sus propias enfermedades, fallos y varias limitaciones desagradables. ¿Realmente lo necesitas?

 
Vasiliy Sokolov:
Документация по MQL5: Графические объекты / TextOut
Документация по MQL5: Графические объекты / TextOut
  • www.mql5.com
Графические объекты / TextOut - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
o_O:

no sólo menos, sino ninguna (excepto bitmap_label, que es donde se dibuja todo).

Tampoco hay que olvidar el modelo de eventos. No está diseñado para manejar eventos en el lienzo. Todo lo que tendrás es la pulsación de teclas en una zona determinada de la pantalla + las coordenadas del ratón. Sí, se puede salir de esta oscuridad con OOP, pero la salida será dura y muy larga.

 
Реter Konow:

Sigo sin entender el mecanismo. Si puedes explicar con más detalle, para tener una idea general, me ayudaría mucho a entender. gracias.
ejecute el ejemplo kanvas desde el archivo xo. zip https://www.mql5.com/ru/forum/92113#comment_2672543
 
Vasiliy Sokolov:

Sólo me pregunto cómo se implementa el trabajo de texto

como ya se ha mostrado - utilicemos TextOut

Matarás mucho tiempo para resolver todos estos problemas

No nos vamos a dar de bruces con obstáculos insalvables. Si el MC no aporta una solución a estos problemas, todo esto se acabará.

Todavía estoy esperando que me respondan en SR.

Además, no hay que olvidar el modelo de eventos. No está diseñado para manejar eventos en el lienzo.

¿Recuerda que le mostré el análogo de su panel para el comercio de órdenes de compensación? Pues bien, allí no se utiliza CHARTEVENY_MOUSE_MOVE, todo se analiza por sí mismo.

Créeme, no hay ningún problema con los eventos o la visualización del carro de entrada.

Ahora la pregunta es sólo sobre los eventos de teclado.

 
o_O:

Ahora la cuestión se reduce a los eventos de teclado.

Con el teclado, todo está más o menos claro. Está el evento de pulsar una tecla y está el código de esta tecla. ¿Qué más quieres?
 
o_O:

Pediremos a la RE un refinamiento.

Por cierto, en mi opinión, facilitaría mucho la vida en términos de un DND normal introduciendo el evento OnMouseDown.