错误、漏洞、问题 - 页 2552

 

你好!

今天更新了MT5到2124,MT4到1198。

在这两个编辑器中,用鼠标滚轮向上和向下滚动停止工作。在其他程序中,它工作正常。请告知谁的滚轮能用或不能用?

 
Alexey Volchanskiy:

你好!

今天更新了MT5到2124,MT4到1198。

在这两个编辑器中,用鼠标滚轮向上和向下滚动停止工作。在其他程序中,它工作正常。 请告知谁的滚轮能用或不能用?

工作。两个编辑部的两个轮子都有。

 
在MT5中 - 它的工作原理
 
Andy:
在MT5中它是有效的。

我明白了,谢谢你们俩。我是一个有10个更新的人,所以MS又没有和MTx搞好关系。

 
你好,fxssi指标不工作,你能告诉我与谁联系吗(开发者)?
附加的文件:
expert.jpg  625 kb
 
A123272:
你好,指标不亮了。你能告诉我该和谁联系吗(开发者)?
联系谁似乎是合乎逻辑的。
 
A123272:
你好。来自fxssi的指标不能工作。你能告诉我该与谁联系吗(开发者)?

你在底部有异常情况,节目就会中断。以前有效果吗?

 
A123272:
你好,fxssi指标不工作,你能告诉我与谁联系吗(开发者)?

把我的指标戴上。它们是无dll的,不会掉下来。

 

你好!

关于LineThick画布的问题,当尺寸设置为3像素或更大时,3边出现了一个轮廓。

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

你好!

在LineThick kanvas中渲染的问题,设置3像素以上的尺寸,3边出现了一个轮廓。

事实上,CCanvas是非常原始的。那里有很多错误,特别是关于抗锯齿。算法就是不正常。
用CCanvas中的常规PixelTransform函数取代。

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

而这个问题会消失,但平滑算法本身不会解决这个问题。


这是正确的抗锯齿吗?
下面是一个正确抗锯齿的例子(上行是正确抗锯齿,下行是抗锯齿的LineThick,很难说 是抗锯齿)。