Пример #1
0
        /// <summary>
        /// Отрисовка активных частей
        /// </summary>
        /// <param name="dCan"></param>
        /// <returns></returns>
        protected bool PaintActual(CandleInfo dCan)
        {
            if (!Candels.PaintLastCandle(dCan))
            {
                return(false);
            }
            //Проверка на перерисовку
            if (MainPanel.Params.Redraw())
            {
                PaintAll();
                return(false);
            }
            //Обычные обьемы
            Volumes.GetFirstLevel().Volume = dCan.Candle.Volume;
            if (!Volumes.PaintLast(dCan))
            {
                return(false);
            }

            RightPrices.PaintCurrentValue(dCan.Candle.Close, MainPanel.Params.MaxPrice, MainPanel.Params.MinPrice);
            if (dCan.Candle.Close > MainPanel.Params.MaxPrice || dCan.Candle.Close < MainPanel.Params.MinPrice)
            {
                if (MainPanel.Params.AutoSize)
                {
                    if (OnReachLimitPrice.NotIsNull())
                    {
                        OnReachLimitPrice(dCan.Candle.Close, MainPanel.Params.MaxPrice, MainPanel.Params.MinPrice);
                    }
                }
            }

            Indicators.ForEach((objIndicator) =>
            {
                if (objIndicator is Indicator)
                {
                    var obj = (Indicator)objIndicator;
                    if (obj.FastRedraw)
                    {
                        obj.FastUpdate();
                    }
                }
            });
            return(true);
        }