
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
- Zumomo zor. Kaydırma çubuğu olmadığından. Ve dürüst olmak gerekirse, onların bu sınıfa dahil edilmesini istemezdim. Şu anda yalnızca CCanvas kullanıyor ve başka nesneler istemiyor. Ve bu çok iyi.
Yakınlaştırmayı kalıtım yoluyla kendi başıma uygulamayı planlıyorum, kaydırma çubukları koyacağım ve gerektiği gibi ölçeklendireceğim.
Kaydırma çubukları kötüdür. Normal grafiği herhangi bir bant olmadan döndürün - fare ve klavye ile.
kaydırılacak grafik olayı yok. MQL onları göndermez.
ancak sürükle bırak fareyi kolayca sürükleyip tekerleği döndürmeyebilirsiniz.
ancak sürükle bırak fareyi kolayca sürükleyip tekerleği döndürmeyebilirsiniz.
@Roman Konopelko
Peki ya #36 ?
Ve başka bir sıfır bölme buldum
Açıklama yapabilirim (çoğaltmak için)
CurveAdd(dizi, CURVE_HISTOGRAM, "P/L"); hangi dizide 1 veya 0 eleman var?
ve böyle bir fahişenin yapıcısı tarafından yargılanarak m_xmax=m_xmin=0. neden daha fazla sıfır bölünme oldu
@Roman Konopelko
Peki ya #36 ?
Ve başka bir sıfır bölme buldum
#36'da açıklananları uyguladı ve sıfır bölme hatasını düzeltti.
ValuesFunctionFormat'ın değişmediği tek şey:
void ValuesFunctionFormat(DoubleToStringFunction func, void * cbdata) { m_values_func=func; m_cbdata=cbdata; }
Ve bir işleve bir işaretçi ve bunun için bir nesneye bir işaretçi alma/ayarlama yöntemlerini ayrı ayrı uyguladım:
void ValuesFunctionFormat(DoubleToStringFunction func) { m_values_func=func; }
void *ValuesFunctionFormatCBData( void ) const { return (m_values_cbdata); }
void ValuesFunctionFormatCBData( void *cbdata) { m_values_cbdata=cbdata; }
Lütfen tuvaldeki renkle çalışmayı düzeltin.
şimdi alfa kanalını hesaba katmıyor. her yerde uint yerine renk .
Bu nedenle, tuval üzerine çizim yaparken, grafik boşlukları her yerdedir (saydam ızgaralar ve çerçeveler, çünkü renkli alfa kanalı = 0, yani tamamen şeffaftır)
Sadece bazı işlevlerde sürekli ColorToARGB'yi arayarak düzeltebildiniz
Örneğin
{
...
//--- create background
m_canvas.FillRectangle( 0 , 0 ,m_width,m_up- 1 , ColorToARGB (m_background.clr, 255 ));
m_canvas.FillRectangle( 0 ,m_height-m_down+ 1 ,m_width,m_height, ColorToARGB (m_background.clr, 255 ));
m_canvas.FillRectangle( 0 ,m_up,m_left- 1 ,m_height-m_down, ColorToARGB (m_background.clr, 255 ));
m_canvas.FillRectangle(m_width-m_right+ 1 ,m_up,m_width,m_height-m_down, ColorToARGB (m_background.clr, 255 ));
Ama neden? rengi bir uint türü yapmanız ve hemen bir alfa kanalıyla ayarlamanız gerekiyorsa
Buradaki gibi (ve diğer renk ayar işlevlerinde)
{
...
//--- sets the default values for grid
m_grid.clr_line= ColorToARGB ( clrWhiteSmoke );
m_grid.clr_axis_line= ColorToARGB ( clrSilver );
m_grid.clr_frame= ColorToARGB ( clrBlack );
m_grid.clr_background= ColorToARGB ( clrWhite );
----
not.
Tuvalin kendisinin COLOR_FORMAT_XRGB_NOALPHA'ya sahip olması bu durumda önemli değildir.
1502 terminal güncellemesindeki düzeltmeleri kontrol etmeye karar verdi
ve tüm iyileştirmeler nerede yapıldı?
ne ValuesFunctionFormat ne de sabit zerodevide hataları
çok komik
gelmesi ile)
1510 kuruldu.
ValuesFunctionFormat'tır. Onunla her şey yolunda.
--
@Roman Konopelko 47. cümleye bakın lütfen.
CGraphic kodunda bunlar sadece birkaç değişken ve fonksiyondur. Değiştirmek zor değil.
Ancak render sırasında şeffaflık sorununu ortadan kaldırır. Gerçekten de, renkli alfa kanalında = %100 şeffaflık. Yanlış olan ne.
@Roman Konopelko 47. cümleye bakın lütfen.
CGraphic kodunda bunlar sadece birkaç değişken ve fonksiyondur. Değiştirmek zor değil.
Ancak render sırasında şeffaflık sorununu ortadan kaldırır. Gerçekten de, renkli alfa kanalında = %100 şeffaflık. Yanlış olan ne.
Ayrıca CCanvas sınıfına, belirli bir kalınlıkta ilkelleri çizmenize izin veren yeni yöntemler ekledim:
void LineThickHorizontal( const int x1, const int x2, const int y, const int size, const uint clr, const uint style,ENUM_LINE_END end_style);
void LineThick( const int x1, const int y1, const int x2, const int y2, const int size, const uint clr, const uint style,ENUM_LINE_END end_style);
void PolylineThick( const int &x[], const int &y[], const int size, const uint clr, const uint style,ENUM_LINE_END end_style);
void PolygonThick( const int &x[], const int &y[], const int size, const uint clr, const uint style,ENUM_LINE_END end_style);
int LinesWidth( void ) const { return (m_lines_width); }
void LinesEndStyle(ENUM_LINE_END end_style) { m_lines_end_style=end_style; }
void LinesWidth( const int width) { m_lines_width=width; }
Misal:
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
double x[] = { - 100 , - 40 , - 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 120 };
double y[] = { - 5 , 4 , - 10 , 23 , 17 , 18 , - 9 , 13 , 17 , 4 , 9 };
CGraphic graphic;
graphic.Create( 0 , "G" , 0 , 30 , 30 , 780 , 380 );
//--- plot curve
CCurve *curve=graphic.CurveAdd(x,y,CURVE_LINES);
curve.LinesSmooth( true );
curve.LinesStyle( STYLE_DOT );
curve.LinesEndStyle(LINE_END_ROUND);
curve.LinesWidth( 10 );
graphic.CurvePlotAll();
graphic.Update();
}
Bu yöntemlerin uygulanması, hatların düzgünlük derecesinin seçilen filtreye bağlı olduğu Hızlı Ön Filtrelenmiş Hatlar algoritmasına dayanmaktadır. İhtiyaç olursa daha detaylı yazarım.