Errors, bugs, questions - page 2552

 

Hello!

Today updated MT5 to 2124 and MT4 to 1198.

In both editors scrolling up and down with the mouse wheel stopped working. In other programs it's working fine. Please advise who has the scrolling wheel working or not?

 
Alexey Volchanskiy:

Hello!

Today updated MT5 to 2124 and MT4 to 1198.

In both editors scrolling up and down with the mouse wheel stopped working. In other programs it's working fine. Please advise who has the scrolling wheel working or not?

Working. Both wheels in both editors.

 
In MT5 - it works
 
Andy:
In MT5 it works.

I see, thank you both. I'm the one with the 10 update, so again MS doesn't get on with MTx.

 
Hello. fxssi indicators are not working. can you tell me who to contact (developers)?
Files:
expert.jpg  625 kb
 
A123272:
Hello. the indicators are not coming on. can you tell me who to contact (developers)?
It seems logical who to contact.
 
A123272:
Hello. the indicators from fxssi are not working. can you tell me who to contact (developers)?

You have exceptions at the bottom and the programme is interrupted. Did it work before?

 
A123272:
Hello. fxssi indicators are not working. can you tell me who to contact (developers)?

Put my indicators on. they are dll-free and don't fall down.

 

Hello!

Problem with LineThick kanvas drawing, when size is set to 3 pixels or more, an outline appears on 3 sides

#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:

Hello!

The problem with rendering in LineThick kanvas, setting the size from 3 pixels and above, an outline appears on 3 sides

In fact, CCanvas is very raw. There are a lot of bugs there, especially regarding anti-aliasing. The algorithms are just out of whack.
Replace the regular PixelTransform function in CCanvas with:

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;
  }

and this problem will go away, but the smoothing algorithms themselves will not fix it.


Is this the right anti-aliasing?
And here's an example of proper antialiasing (top line with proper antialiasing, bottom line isLineThick with antialiasing, which can hardly be called antialiasing)