Errori, bug, domande - pagina 2552

 

Ciao!

Oggi aggiornato MT5 a 2124 e MT4 a 1198.

In entrambi gli editor lo scorrimento su e giù con la rotella del mouse ha smesso di funzionare. In altri programmi funziona bene. Si prega di avvisare chi ha la rotella di scorrimento funzionante o no?

 
Alexey Volchanskiy:

Ciao!

Oggi aggiornato MT5 a 2124 e MT4 a 1198.

In entrambi gli editor lo scorrimento su e giù con la rotella del mouse ha smesso di funzionare. In altri programmi funziona bene. Si prega di avvisare chi ha la rotella di scorrimento funzionante o no?

Lavorare. Entrambe le ruote in entrambi gli editori.

 
In MT5 - funziona
 
Andy:
In MT5 funziona.

Capisco, grazie a entrambi. Io sono quello con l'aggiornamento 10, quindi di nuovo MS non va d'accordo con MTx.

 
Ciao. gli indicatori fxssi non funzionano. puoi dirmi chi contattare (sviluppatori)?
File:
expert.jpg  625 kb
 
A123272:
Salve. gli indicatori non si accendono. potete dirmi chi contattare (sviluppatori)?
Sembra logico a chi rivolgersi.
 
A123272:
Salve. gli indicatori di fxssi non funzionano. potete dirmi chi contattare (sviluppatori)?

Avete delle eccezioni in basso e il programma viene interrotto. Funzionava prima?

 
A123272:
Ciao. gli indicatori fxssi non funzionano. puoi dirmi chi contattare (sviluppatori)?

Mettete i miei indicatori, sono senza tacche e non cadono.

 

Ciao!

Problema con il disegno del kanvas LineThick, quando la dimensione è impostata a 3 pixel o più, appare un contorno su 3 lati

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

Ciao!

Il problema con il rendering nel kanvas LineThick, impostando la dimensione da 3 pixel in su, appare un contorno su 3 lati

Infatti, CCanvas è molto grezzo. Ci sono un sacco di bug, soprattutto per quanto riguarda l'anti-aliasing. Gli algoritmi sono semplicemente sballati.
Sostituire la normale funzione PixelTransform in 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;
  }

e questo problema sparirà, ma gli stessi algoritmi di lisciatura non lo risolveranno.


È l'anti-aliasing giusto?
Ed ecco un esempio di antialiasing corretto (la linea superiore con antialiasing corretto, la linea inferiore èLineThick con antialiasing, che difficilmente può essere chiamato antialiasing)