El lienzo es genial. - página 62

 
Nikolai Semko:

¿Algo así?



Nikolai, ¿estará disponible el código de ejemplo? :)

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

Nikolai, ¿estará disponible el código de ejemplo? :)

El código aún está en bruto. Lo hice hace un año y medio para un experimento, cómo podría ser.
Cuando lo implemente correctamente, entonces añadiré esta función a iCanvas, si es que para entonces sigo en el foro. No tengo tiempo para hacerlo ahora.

Puedes intentar ponerlo en práctica tú mismo.
Para ayudar, aquí hay un par de funciones de mi implementación, que son responsables de dibujar la ventana de selección de color:

void    iCanvas::DrawSetColor(int X,int Y,uint curColor=0xFFFFFFFF)
  {
   if(!SetClr) return;
   uchar R=GETRGBR(curColor);
   uchar G=GETRGBG(curColor);
   uchar B=GETRGBB(curColor);
   FillRectangle(X-3,Y-3,X+330,Y+273,ColorToARGB(0xFFC0C0C0));
   FontSet("Century Gothic",20);
   TextOut(X+23,Y-4,"R "+string(R)+"(#"+ByteToHex(R)+")",0xFF000000);
   TextOut(X+135,Y-4,"G "+string(G)+"(#"+ByteToHex(G)+")",0xFF000000);
   TextOut(X+251,Y-4,"B "+string(B)+"(#"+ByteToHex(B)+")",0xFF000000);
   FillCircle(X+10,Y+6,6,ARGB(255,255,255-R,255-R));
   FillCircle(X+122,Y+6,6,ARGB(255,255-G,255,255-G));
   FillCircle(X+238,Y+6,6,ARGB(255,255-B,255-B,255));
   for(int x=0; x<256; x++)
      for(int y=0; y<256; y++)
        {
         PixelSet(x+X,y+Y+15,ARGB(255,R,x,y));
        }
   uchar rq=(R>127)?0:255;
   Rectangle(G+X-4,B+Y+11,G+X+4,B+Y+19,ARGB(255,0,0,0));
   Rectangle(G+X-3,B+Y+12,G+X+3,B+Y+18,ARGB(255,255,255,255));
   Rectangle(G+X-5,B+Y+10,G+X+5,B+Y+20,ARGB(255,255,255,255));
   for(int y=0; y<256; y++)
     {
      for(int x=0; x<16; x++)
        {
         PixelSet(x+X+263,y+Y+15,ARGB(255,y,x*16,0));
         PixelSet(x+X+263+16,y+Y+15,ARGB(255,y,255,x*16));
         PixelSet(x+X+263+32,y+Y+15,ARGB(255,y,255-x*16,255));
         PixelSet(x+X+263+48,y+Y+15,ARGB(255,y,0,255-x*16));
        }
     }
   Rectangle(X+260,Y+R+12,X+263+67,Y+R+18,0xFFFFFFFF);
   Rectangle(X+261,Y+R+13,X+263+66,Y+R+17,0xFFFFFFFF);
   Update();
  }
string ByteToHex(int n)
  {
   string s="",c;
   if(n==0) return "00";
   int N=n;
   while(n!=0)
     {
      if(n%16<10)
         c=CharToString(uchar(n%16+48));
      else
         c=CharToString(uchar(n%16+55));
      s = c + s;
      n = n / 16;
     }
   if(N<16) s="0"+s;
   return(s);
  }
 

Parece que los únicos que quedan en el foro son los llorones y los pardillos. ¿Y dónde están los que estaban preparados para las hazañas de mql...?

¡Nikolay es bueno! Demuestra muy bien las capacidades de mql. Yo añadiría un título de la rama: ¡el lienzo es fácil!

Y de hecho :) Nikolay, ¿has probado a sustituir ByteToHex() por la función StringFormat("%.2X",R) incrustada?


p.s. El lenguaje y el entorno de ejecución han alcanzado su perfección, y a veces quiero decir: - ¡Para! :)

Документация по MQL5: Преобразование данных / StringFormat
Документация по MQL5: Преобразование данных / StringFormat
  • www.mql5.com
"SYMBOL_SWAP_MODE_INTEREST_CURRENT (в годовых процентах от цены инструмента на момент расчета свопа)" "SYMBOL_SWAP_MODE_REOPEN_CURRENT (переоткрытием позиции по цене закрытия +/- указанное количество пунктов)" "SYMBOL_SWAP_MODE_REOPEN_BID (переоткрытием позиции по текущей цене Bid +/- указанное количество пунктов)"
 
Yury Kulikov:

Nikolai, ¿has probado a sustituir ByteToHex() por la función incorporada StringFormat("%.2X",R)?


Oh, gracias, Yuri. No lo sabía. Inventado una bicicleta como siempre )).

 
Nikolai Semko:

El código aún está en bruto. Lo hice hace un año y medio para un experimento, cómo podría ser.
Cuando esté bien implementado, entonces añadiré esta función a iCanvas, si es que para entonces sigo en el foro. No tengo tiempo para hacerlo ahora.

Puedes intentar ponerlo en práctica tú mismo.
Para ayudar, aquí hay un par de funciones de mi implementación, que son responsables de dibujar la ventana de selección de color:

Gracias. Estoy tratando de implementarlo ahora mismo.

 
TheXpert:
Dígame cómo es que no hay programadores profesionales entre los moderadores de un recurso que lleva el nombre de un lenguaje de programación.

Oops

Llevo 25 años programando en C++ sin descanso.

MQL II - de principio a fin

MQL4 - hasta la construcción 600 - de principio a fin

MQL5 - desde el principio

Recibo dinero por mi programación en C++, por lo que se me puede considerar un programador profesional.

 
Slava:
usted es un miembro del personal de metaquotes y tiene poca o ninguna participación en la moderación del foro. Y honestamente, pensé que tenías una placa de administrador.
 
TheXpert:
eres un miembro del personal de metaquotes y prácticamente no estás moderando el foro. Y honestamente, pensé que tenías una placa de administrador.

Imagine que ha escrito un programa

¿Quién mejor que usted para responder a las preguntas?

 

Avarage 3D en movimiento
Voy a lanzar el código en el QB mañana


 
Nikolai Semko:

3D Moving Avarage
Mañana pondré el código en el QB

¡¡¡Precioso!!!

Nikolai, por favor, lanza el listado de códigos de la formación de la paleta de colores del arco iris aquí

Si es en forma de función, será aún más práctico
Razón de la queja: