Librerías: Easy Canvas - página 15

 
Nikolai Semko #:

Si literalmente en un objeto rectangular, entonces no.
El lienzo es también un objeto.
Solo puede "transformar" un objeto de lienzo en un objeto de rectángulo mediante programación para que su contenido se mueva y se escale.
Visualmente, puede verse exactamente como un objeto rectangular con pequeños cuadrados en las esquinas para controlarlo. Pero solo unos pocos programadores en esta comunidad podrán implementar esto, incluyéndome a mí.

Si estamos hablando de la transformación de los contenidos internos del rectángulo. Si estamos hablando de un simple rectángulo lleno o vacío, cualquier programador puede hacerlo.

Ok Nikolai, entendido. Muchas gracias!

 
Facundo Laje #:

Ok Nikolai, entendido. Muchas gracias!

No hay problema.

La última versión es 1.47 aquí: https://www.mql5.com/ru/code/22164

Si está interesado en este tema, le recomendaría ver este hilo de habla rusa con Google Translate:

https://www.mql5.com/ru/forum/227736

Archivos adjuntos:
iCanvas_CB.mqh  57 kb
 

¡Buenos días, colegas!

¿Por qué no me funciona el código de abajo? Por ejemplo, quería dibujar círculos sobre barras que tienen ciertas condiciones.

void  OnTimer()

 {

    Canvas.Erase(0x00FFFFFF);

      for(int i = 0; i < 100 ; i++)

       {

        if(iClose(_Symbol, PERIOD_CURRENT, i + 1) > iClose(_Symbol, PERIOD_CURRENT, i + 2))

         {

          Canvas.Circle((int)_X(Canvas.Bar(i + 1)), (int)_Y(Canvas.Price(iClose(_Symbol, PERIOD_CURRENT, i + 1))), 5, 0x88ff9999);

         }

       }

  Canvas.Update();

 }


 
Petr Zharuk #:

¡Buenos tiempos, colegas!

¿Por qué no me funciona el código de abajo? Por ejemplo, quería dibujar círculos sobre barras que tienen ciertas condiciones.

void  OnTimer()

 {

    Canvas.Erase(0x00FFFFFF);

      for(int i = 0; i < 100 ; i++)

       {

        if(iClose(_Symbol, PERIOD_CURRENT, i + 1) > iClose(_Symbol, PERIOD_CURRENT, i + 2))

         {

          Canvas.Circle((int)_X(Canvas.Bar(i + 1)), (int)_Y(Canvas.Price(iClose(_Symbol, PERIOD_CURRENT, i + 1))), 5, 0x88ff9999);

         }

       }

  Canvas.Update();

 }


A primera vista sólo veo un problema. Para la coordenada X es necesario
_X(doble (i))
La función double Canvas. Bar(int x) devuelve el número de barra en la coordenada x de la ventana
 
Petr Zharuk #:

¡Buenos tiempos, colegas!

¿Por qué no me funciona el código de abajo? Por ejemplo, quería dibujar círculos sobre barras que tienen ciertas condiciones.

void  OnTimer()

 {

    Canvas.Erase(0x00FFFFFF);

      for(int i = 0; i < 100 ; i++)

       {

        if(iClose(_Symbol, PERIOD_CURRENT, i + 1) > iClose(_Symbol, PERIOD_CURRENT, i + 2))

         {

          Canvas.Circle((int)_X(Canvas.Bar(i + 1)), (int)_Y(Canvas.Price(iClose(_Symbol, PERIOD_CURRENT, i + 1))), 5, 0x88ff9999);

         }

       }

  Canvas.Update();

 }

Llegué a mi ordenador:

void  OnTimer()
  {
   Canvas.Erase(0x00FFFFFF);
   for(int i = (int)W.Right_bar; i <= W.Left_bar ; i++)
     {
      if(iClose(_Symbol, _Period, i) > iClose(_Symbol, _Period, i + 1))
        {
         Canvas.FillCircle((int)_X((double)i), (int)_Y(iClose(_Symbol, _Period, i)), 5, 0x88ff9999);
        }
     }
   Canvas.Update();
  }



 
Nikolai Semko #:

llegó al ordenador:



¡Salud Nikolai!

Gracias, Nikolai.

 

¿Existe una implementación de cómo colocar texto con adhesión?

Un análogo de Alinear o algo así. O al menos una función que obtenga el tamaño del bloque de texto.

 
Petr Zharuk #:

¿Existe una aplicación de cómo colocar texto con adherencia?

Un análogo de Alinear o algo así. O al menos una función que obtenga el tamaño del bloque de texto.

https://www.mql5.com/es/docs/standardlibrary/canvasgraphics/ccanvas/ccanvastextsize

https://www.mql5.com/es/docs/standardlibrary/canvasgraphics/ccanvas/ccanvastextout

 

Nicholas, ¿hay algún desarrollo o ejemplo de interacción con elementos de interfaz escritos en Canvas?

Por ejemplo, hay dos botones Canvas.Rectangle.

¿Cómo comprobar si se hace clic en uno de ellos, salvo la opción de comprobar las coordenadas del ratón y del botón?

 
Petr Zharuk #:

Nikolay, ¿hay algún desarrollo o ejemplo de interacción con elementos de interfaz escritos en Canva?

Por ejemplo, hay dos botones Canvas.Rectangle.

¿Cómo comprobar si se hace clic en uno de ellos, salvo la opción de comprobar las coordenadas del ratón y del botón?

Todavía no