Errores, fallos, preguntas - página 2552

 

¡Hola!

Hoy se ha actualizado MT5 a 2124 y MT4 a 1198.

En ambos editores el desplazamiento hacia arriba y hacia abajo con la rueda del ratón dejó de funcionar. En otros programas funciona bien. Por favor, avise a quien tenga la rueda de desplazamiento funcionando o no.

 
Alexey Volchanskiy:

¡Hola!

Hoy se ha actualizado MT5 a 2124 y MT4 a 1198.

En ambos editores el desplazamiento hacia arriba y hacia abajo con la rueda del ratón dejó de funcionar. En otros programas funciona bien. Por favor, avise a quien tenga la rueda de desplazamiento funcionando o no.

Trabajando. Ambas ruedas en ambos editores.

 
En MT5 - funciona
 
Andy:
En MT5 funciona.

Ya veo, gracias a los dos. Yo soy el que tiene la actualización del 10, así que de nuevo MS no se lleva bien con MTx.

 
Hola. Los indicadores fxssi no funcionan. ¿me pueden decir con quién contactar (desarrolladores)?
Archivos adjuntos:
expert.jpg  625 kb
 
A123272:
Hola. los indicadores no se encienden. ¿puede decirme con quién debo contactar (desarrolladores)?
Parece lógico a quién dirigirse.
 
A123272:
Hola. los indicadores de fxssi no funcionan. ¿pueden decirme con quién contactar (desarrolladores)?

Hay excepciones en el fondo y el programa se interrumpe. ¿Funcionaba antes?

 
A123272:
Hola. Los indicadores fxssi no funcionan. ¿me pueden decir con quién contactar (desarrolladores)?

Poner mis indicadores. Son libres de dll y no se caen.

 

¡Hola!

Problema con el dibujo del kanvas LineThick, cuando el tamaño se establece en 3 píxeles o más, aparece un contorno en 3 lados

#include <Canvas\Canvas.mqh>
CCanvas can;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   can.CreateBitmapLabel(0,0,"Canvas",0,0,(int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS),(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS),COLOR_FORMAT_ARGB_NORMALIZE);
   can.Erase();
   can.FillRectangle (500, 100, 1000, 150, ColorToARGB(clrDarkGray,50));
   can.FillRectangle (600, 30, 650, 500, ColorToARGB(clrDarkGray,50));
   can.LineThickVertical(500,50,300,ColorToARGB(clrDarkGray,50),6,1,LINE_END_ROUND);
   can.LineThickVertical(530,50,300,ColorToARGB(clrDarkGray,50),6,1,LINE_END_ROUND);
   can.LineThickVertical(560,50,300,ColorToARGB(clrDarkGray,50),6,1,LINE_END_ROUND);
   can.LineThickHorizontal(0,1000,150,ColorToARGB(clrDarkGray,50),6,1,LINE_END_ROUND);
   can.LineThickHorizontal(0,1000,170,ColorToARGB(clrDarkGray,50),6,1,LINE_END_ROUND);
   can.LineThickHorizontal(0,1000,190,ColorToARGB(clrDarkGray,50),6,1,LINE_END_ROUND);
   can.LineThick(0,100,1000,410,ColorToARGB(clrDarkGray),5,1,LINE_END_ROUND);
   can.Update();
   DebugBreak();
  }


 
Rafil Nurmukhametov:

¡Hola!

El problema con el renderizado en kanvas LineThick, estableciendo el tamaño de 3 píxeles y más, aparece un contorno en 3 lados

De hecho, CCanvas es muy crudo. Hay un montón de errores, especialmente en lo que respecta al antialiasing. Los algoritmos se han desajustado.
Reemplazar la función regular PixelTransform en CCanvas con:

void CCanvas::PixelTransform (const int x,const int y,const uint clr,const double alpha)
  {
   union argb { uint clr; uchar c[4]; };
   int addr=y*m_width+x;
   uint clrback=m_pixels[addr];
   if(clrback==0)
     {
      m_pixels[addr]=TRGB(uchar(alpha*255.0+0.49999),clr&0x00FFFFFF);
      return;
     }
   if(alpha<1.0/510)
      return;
   if(alpha>(1-1.0/510))
      m_pixels[addr]=clr|0xFF000000;
   argb C,Bg;

   C.clr=clr;
   C.c[3]=uchar(alpha*255.0+0.49999);

   Bg.clr=clrback;
   double alphab=Bg.c[3]/255.0;

   C.c[2]=uchar(Bg.c[2]+alpha*(C.c[2]-Bg.c[2]));
   C.c[1]=uchar(Bg.c[1]+alpha*(C.c[1]-Bg.c[1]));
   C.c[0]=uchar(Bg.c[0]+alpha*(C.c[0]-Bg.c[0]));

   C.c[3]=uchar((alphab+alpha-alphab*alpha)*255+0.49999);
   m_pixels[addr]=C.clr;
  }

y este problema desaparecerá, pero los algoritmos de suavizado en sí no lo arreglarán.


¿Es este el antialiasing correcto?
Y aquí hay un ejemplo de antialiasing adecuado (la línea superior con antialiasing adecuado, la línea inferior esLineThick con antialiasing, que apenas puede llamarse antialiasing)