Ошибки, баги, вопросы - страница 2552

 

Здравствуйте!

Сегодня обновился МТ5 на 2124, а МТ4 на 1198.

В обоих редакторах перестал работать скроллинг вверх-вних колесиком мышки. В остальных программах все работает нормально. Напишите пожалуйста, у кого колесико работает или не работает?

 
Alexey Volchanskiy:

Здравствуйте!

Сегодня обновился МТ5 на 2124, а МТ4 на 1198.

В обоих редакторах перестал работать скроллинг вверх-вних колесиком мышки. В остальных программах все работает нормально. Напишите пожалуйста, у кого колесико работает или не работает?

Работают. Оба колеса в обоих редакторах.

 
В МТ5 - работает
 
Andy:
В МТ5 - работает

Ясно, спасибо обоим. Это у меня 10-ка обновилась, значит опять MS не ладит  МТх.

 
здравствуйте. не становятся индикаторы от fxssi. подскажите к кому можно обратиться (разработчики)?
Файлы:
expert.jpg  625 kb
 
A123272:
здравствуйте. не становятся индикаторы от. подскажите к кому можно обратиться (разработчики)?
Логично вроде, к кому обратится. 
 
A123272:
здравствуйте. не становятся индикаторы от fxssi. подскажите к кому можно обратиться (разработчики)?

У вас в нижнем возникают исключения и программа прерывается. А раньше работали?

 
A123272:
здравствуйте. не становятся индикаторы от fxssi. подскажите к кому можно обратиться (разработчики)?

ставьте мои индикаторы. они без длл и не падают.

 

Здравствуйте!

Проблема с отрисовкой в канвасе LineThick, при установлении size от 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, при установлении size от 3 пикселей и выше, появляется контур по 3 сторонам

На самом деле CCanvas очень сырой. Там очень много косяков, особенно что касается сглаживания. Алгоритмы просто вырви глаз.
Замените штатную PixelTransform в CCanvas функцию на:

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 со сглаживанием, которое трудно назвать сглаживанием)


Причина обращения: