Exemplo n.º 1
0
        public int CompareTo(object obj)
        {
            if (obj == null)
            {
                return(1);
            }
            oneTVS other = obj as oneTVS;

            if (other != null)
            {
                return(this._loadNumber.CompareTo(other._loadNumber));
            }
            else
            {
                throw new ArgumentException("Object is not a Temperature");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Функция для нарисовки координатной линии сетки
        /// </summary>
        public void DrawGrid(int goal)
        {
            oneTVS temp = new oneTVS();


            oneTVS goalTvs = new oneTVS();

            goalTvs = this.Zona[goal];
            //int[] a = new int[4];



            //= { {0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 }, { 0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 } };

            // int[] tempY = { 0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 };

            //int i = 15;
            int val = new int();

            Pen myDefaultPen = new Pen(Brushes.White);


            myDefaultPen.DashStyle = DashStyle.Dot;
            myDefaultPen.Width     = 1;

            Font myDefaultFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, 14, FontStyle.Regular);

            foreach (int item in faza[this.ScreanAngle])
            {
                temp = this.getTVSByTVS360Number(item);


                g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);


                switch (this.ScreanAngle)
                {
                case 0:
                    val = temp.Cord.X;
                    break;

                case 1:
                    val = temp.Cord.Y;
                    break;

                case  2:
                    val = temp.Cord.X;
                    break;

                case 3:
                    val = temp.Cord.Y;
                    break;

                default:
                    break;
                }



                if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y))
                {
                    if (val < 10)
                    {
                        g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Red, 0, temp.CanvasCord.Y - 14);
                    }
                    else
                    {
                        g.DrawString(val.ToString(), myDefaultFont, Brushes.Red, 0, temp.CanvasCord.Y - 14);
                    }
                }
                else
                {
                    if (val < 10)
                    {
                        g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.WhiteSmoke, 0, temp.CanvasCord.Y - 14);
                    }
                    else
                    {
                        g.DrawString(val.ToString(), myDefaultFont, Brushes.WhiteSmoke, 0, temp.CanvasCord.Y - 14);
                    }
                }
            }



            ///Для прорисовки верхний координат
            ///
            int fazV = this.ScreanAngle - 1;

            if (fazV < 0)
            {
                fazV = 3;
            }

            foreach (int item in faza[fazV])
            {
                temp = this.getTVSByTVS360Number(item);

                g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40);

                //g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);


                switch (fazV)
                {
                case 0:
                    val = temp.Cord.X;
                    break;

                case 1:
                    val = temp.Cord.Y;
                    break;

                case 2:
                    val = temp.Cord.X;
                    break;

                case 3:
                    val = temp.Cord.Y;
                    break;

                default:
                    break;
                }


                if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y))
                {
                    if (val < 10)
                    {
                        g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Red, temp.CanvasCord.X - 14, 0);
                    }
                    else
                    {
                        g.DrawString(val.ToString(), myDefaultFont, Brushes.Red, temp.CanvasCord.X - 14, 0);
                    }
                }
                else
                {
                    if (val < 10)
                    {
                        g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.WhiteSmoke, temp.CanvasCord.X - 14, 0);
                    }
                    else
                    {
                        g.DrawString(val.ToString(), myDefaultFont, Brushes.WhiteSmoke, temp.CanvasCord.X - 14, 0);
                    }
                }
            }


            /////Для прорисовки вертикальи пройдемся по всем пятым точкам
            /////
            //int[] tempX1 = { 102, 115, 127, 138, 148, 149, 157, 156, 158, 159, 160, 161, 162, 156 };

            //foreach (int item in tempX1)
            //{
            //    temp = this.getTVSByTVS360Number(item);
            //    g.DrawLine(myDefaultPen, temp.Hex[1].X, temp.Hex[1].Y, temp.Hex[1].X, 40);


            //}


            //int[] tempX0 = { 148, 157, 158, 159, 160, 161, 162, 156 };

            //foreach (int item in tempX0)
            //{
            //    temp = this.getTVSByTVS360Number(item);
            //    g.DrawLine(myDefaultPen, temp.Hex[0].X, temp.Hex[0].Y, temp.Hex[0].X, 40);
            //}


            //int[] tempX5 = { 162, 156, 147, 137, 126, 114 };

            //foreach (int item in tempX5)
            //{
            //    temp = this.getTVSByTVS360Number(item);
            //    g.DrawLine(myDefaultPen, temp.Hex[5].X, temp.Hex[5].Y, temp.Hex[5].X, 40);
            //}



            /////ПОдпишим циферки оси X
            /////
            //int stepX = this.getTVSByTVS360Number(115).Hex[1].X - this.getTVSByTVS360Number(102).Hex[1].X;
            //int startX = this.getTVSByTVS360Number(102).Hex[1].X - 20;
            //for (int ii = 16; ii < 43; ii++)
            //{
            //    if (ii % 2 == 0)
            //    {
            //        g.DrawString(ii.ToString(), myDefaultFont, Brushes.WhiteSmoke, startX,0);
            //    }



            //    startX += stepX;
            //}



            pic.Refresh();
        }
Exemplo n.º 3
0
        /// <summary>
        /// Прорисовка осей. Goal - нужен чтобы выделять цели на координатной сетке
        /// </summary>
        /// <param name="goal">Индекс ТВС Куда будет загружена следующая</param>
        public void DrawGrid(int goal)
        {
            oneTVS temp = new oneTVS();
            ///Получим реальный объект целефой ТВС
            oneTVS goalTvs = new oneTVS();

            if (goal < 162)
            {
                goalTvs = this.Zona[goal];
            }
            else
            {
                goalTvs = this.Zona[162];
            }

            int val          = new int();
            Pen myDefaultPen = new Pen(Brushes.Black);

            myDefaultPen.DashStyle = DashStyle.Dot;
            myDefaultPen.Width     = 1;

            Pen myDefaultPenGoal = new Pen(Brushes.Red);

            myDefaultPenGoal.DashStyle = DashStyle.Dot;
            myDefaultPenGoal.Width     = 1;

            Font myDefaultFont     = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, MyConst.MyAxisFontSize, FontStyle.Regular);
            Font myDefaultGoalFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, MyConst.MyAxisFontGoalSize, FontStyle.Regular);

            ///При каждой конкретно повороте окна нужно рисовать либо справа либо слева,
            ///чтобы не накладывалорсь на стол ДРИ
            ///Ну чтоже, слева уже рисует всегд, сделаем, так
            ///чтобы СЛЕВА рисовал только в ДВУХ НУжних случаях:
            ///
            if ((this.ScreanAngle == 2) || (this.ScreanAngle == 3))
            {
                foreach (int item in faza[this.ScreanAngle])
                {
                    temp = this.getTVSByTVS360Number(item);
                    //if ((goalTvs.Cord.X == temp.Cord.X)||(goalTvs.Cord.Y == temp.Cord.Y))
                    //{
                    //    g.DrawLine(myDefaultPenGoal, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);
                    //}
                    //else
                    //{
                    //    g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);
                    //}
                    switch (this.ScreanAngle)
                    {
                    case 2:
                        val = temp.Cord.X;
                        break;

                    //case 1:
                    //    val = temp.Cord.Y;
                    //    break;
                    //case 2:
                    //    val = temp.Cord.X;
                    //    break;
                    case 3:
                        val = temp.Cord.Y;
                        break;

                    default:
                        break;
                    }
                    if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y))
                    {
                        g.DrawLine(myDefaultPenGoal, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);
                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, 0, temp.CanvasCord.Y - 14);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, 0, temp.CanvasCord.Y - 14);
                        }
                    }
                    else
                    {
                        g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);
                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, 0, temp.CanvasCord.Y - 14);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, 0, temp.CanvasCord.Y - 14);
                        }
                    }
                }
            }
            else //если нужно чертить справа
            {
                int fazV = this.ScreanAngle + 2;
                if (fazV > 3)
                {
                    fazV = 0;
                }

                foreach (int item in faza[fazV])
                {
                    temp = this.getTVSByTVS360Number(item);
                    //if ((goalTvs.Cord.X == temp.Cord.X) || (goalTvs.Cord.Y == temp.Cord.Y))
                    //{
                    //    g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y);
                    //}
                    //else
                    //{
                    //    g.DrawLine(myDefaultPen, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y);
                    //}
                    switch (this.ScreanAngle)
                    {
                    case 0:
                        val = temp.Cord.X;
                        break;

                    case 1:
                        val = temp.Cord.Y;
                        break;

                    case 2:
                        val = temp.Cord.X;
                        break;

                    case 3:
                        val = temp.Cord.Y;
                        break;

                    default:
                        break;
                    }
                    if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y))
                    {
                        g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y);
                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, this.pic.Width - 40, temp.CanvasCord.Y - 14);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, this.pic.Width - 40, temp.CanvasCord.Y - 14);
                        }
                    }
                    else
                    {
                        g.DrawLine(myDefaultPen, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y);
                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, this.pic.Width - 40, temp.CanvasCord.Y - 14);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, this.pic.Width - 40, temp.CanvasCord.Y - 14);
                        }
                    }
                }
            }

            //ЭТИ УСЛОВИЯ КОГДА НУЖНО ЧЕРТИТЬ ВВЕРХУ
            if ((this.ScreanAngle == 0) || (this.ScreanAngle == 3))
            {
                ///Для прорисовки верхний координат
                ///
                ///fazV - эта махинация нужна чтобы неперебивать массив констант из периферийных ТВС, а его заюзать но сдругой фазой для верхних координат
                int fazV = this.ScreanAngle - 1;
                if (fazV < 0)
                {
                    fazV = 3;
                }

                foreach (int item in faza[fazV])
                {
                    temp = this.getTVSByTVS360Number(item);
                    //if ((goalTvs.Cord.X == temp.Cord.X) || (goalTvs.Cord.Y == temp.Cord.Y))
                    //{
                    //    g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40);
                    //}
                    //else
                    //{
                    //    g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40);
                    //}
                    switch (fazV)
                    {
                    case 0:
                        val = temp.Cord.X;
                        break;

                    case 1:
                        val = temp.Cord.Y;
                        break;

                    case 2:
                        val = temp.Cord.X;
                        break;

                    case 3:
                        val = temp.Cord.Y;
                        break;

                    default:
                        break;
                    }
                    if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y))
                    {
                        g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40);
                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, 0);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, 0);
                        }
                    }
                    else
                    {
                        g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40);
                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, 0);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, 0);
                        }
                    }
                }
            } // If screanAngle 0 or 1
            else
            { //Если нужн чертить внизу
                ///Для прорисовки верхний координат
                ///
                ///fazV - эта махинация нужна чтобы неперебивать массив констант из периферийных ТВС, а его заюзать но сдругой фазой для верхних координат
                int fazV = this.ScreanAngle + 1;
                if (fazV > 3)
                {
                    fazV = 0;
                }

                foreach (int item in faza[fazV])
                {
                    temp = this.getTVSByTVS360Number(item);

                    //if ((goalTvs.Cord.X == temp.Cord.X) || (goalTvs.Cord.Y == temp.Cord.Y))
                    //{
                    //    g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40);
                    //}
                    //else
                    //{
                    //    g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40);
                    //}

                    switch (fazV)
                    {
                    case 0:
                        val = temp.Cord.X;
                        break;

                    case 1:
                        val = temp.Cord.Y;
                        break;

                    case 2:
                        val = temp.Cord.X;
                        break;

                    case 3:
                        val = temp.Cord.Y;
                        break;

                    default:
                        break;
                    }
                    if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y))
                    {
                        g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40);

                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, this.pic.Width - 40);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, this.pic.Width - 40);
                        }
                    }
                    else
                    {
                        g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40);

                        if (val < 10)
                        {
                            g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, this.pic.Width - 40);
                        }
                        else
                        {
                            g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, this.pic.Width - 40);
                        }
                    }
                }
            }

            pic.Refresh();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Функция для нарисовки координатной линии сетки
        /// </summary>
        public void DrawGrid()
        {
            // --- Coordinate Paint--
            // --------- Height (Left)
            //Brush.Color:=Self.Color;
            //Font.size:=f;A
            //Font.Name:='BankGothic Lt BT';
            //if Font.size > 12 then Font.size:=12;
            //// -- labels --

            //for i :=1  to 9 do
            //TextOut(0,Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),'0'+IntToStr(i));

            // int Ystart = this.getTVSByTVS360Number(157).CanvasCord.Y;
            // int Ystep = (this.getTVSByTVS360Number(140).CanvasCord.Y - this.getTVSByTVS360Number(157).CanvasCord.Y)/2;
            // for (int i = 1; i < 16; i++)
            //{
            //    g.DrawString(i.ToString(), System.Windows.Forms.Control.DefaultFont, Brushes.Black, 0, Ystart);
            //    Ystart += Ystep;
            //}

            oneTVS temp = new oneTVS();


            int[] tempY = { 0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 };

            int i = 15;


            Pen myDefaultPen = new Pen(Brushes.Green);

            //myDefault.Color = Color.Green;
            myDefaultPen.DashStyle = DashStyle.Dot;
            myDefaultPen.Width     = 3;

            Font myDefaultFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, 14, FontStyle.Bold);

            foreach (int item in tempY)
            {
                temp = this.getTVSByTVS360Number(item);
                g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y);
                if (i < 10)
                {
                    g.DrawString("0" + i.ToString(), myDefaultFont, Brushes.DarkGreen, 0, temp.CanvasCord.Y - 14);
                }
                else
                {
                    g.DrawString(i.ToString(), myDefaultFont, Brushes.DarkGreen, 0, temp.CanvasCord.Y - 14);
                }
                i--;
            }



            ///Для прорисовки вертикальи пройдемся по всем пятым точкам
            ///
            int[] tempX1 = { 102, 115, 127, 138, 148, 149, 157, 156, 158, 159, 160, 161, 162, 156 };

            foreach (int item in tempX1)
            {
                temp = this.getTVSByTVS360Number(item);
                g.DrawLine(myDefaultPen, temp.Hex[1].X, temp.Hex[1].Y, temp.Hex[1].X, 40);
                //    if (i < 10)
                //    {
                //        g.DrawString("0" + i.ToString(), myDefaultFont, Brushes.Green, 0, temp.CanvasCord.Y - 10);
                //    }
                //    else
                //        g.DrawString(i.ToString(), myDefaultFont, Brushes.Green, 0, temp.CanvasCord.Y - 10);
                //    i++;
                //}
            }


            int[] tempX0 = { 148, 157, 158, 159, 160, 161, 162, 156 };

            foreach (int item in tempX0)
            {
                temp = this.getTVSByTVS360Number(item);
                g.DrawLine(myDefaultPen, temp.Hex[0].X, temp.Hex[0].Y, temp.Hex[0].X, 40);
            }


            int[] tempX5 = { 162, 156, 147, 137, 126, 114 };

            foreach (int item in tempX5)
            {
                temp = this.getTVSByTVS360Number(item);
                g.DrawLine(myDefaultPen, temp.Hex[5].X, temp.Hex[5].Y, temp.Hex[5].X, 40);
            }



            ///ПОдпишим циферки оси X
            ///
            int stepX  = this.getTVSByTVS360Number(115).Hex[1].X - this.getTVSByTVS360Number(102).Hex[1].X;
            int startX = this.getTVSByTVS360Number(102).Hex[1].X - 20;

            for (int ii = 16; ii < 43; ii++)
            {
                if (ii % 2 == 0)
                {
                    g.DrawString(ii.ToString(), myDefaultFont, Brushes.DarkGreen, startX, 0);
                }



                startX += stepX;
            }

            // g.DrawString("центр", System.Windows.Forms.Control.DefaultFont, Brushes.Black, 0, this.Fcenter);
            //for i :=10  to 15 do
            //TextOut(0,Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),IntToStr(i));


            //for (int i = 10; i < 16; i++)
            //{
            //    g.DrawString(i.ToString(), System.Windows.Forms.Control.DefaultFont, Brushes.Black, 0, (int)(this.Fcenter - Math.Round(this.FA * (12 - i * 1.5)) - (int)((float)this.FA / (float)2)));
            //}


            //// -- lines --
            //for i :=1  to 15 do
            //begin
            //case i > 8 of
            //  False:
            //   begin
            //    MoveTo(round(TextWidth('00')),Fcentre-round(FA*(12-i*1.5)));
            //    LineTo(Fcentre -(8+i)*FStep,Fcentre-round(FA*(12-i*1.5)));
            //   end;
            //  True:
            //  begin
            //    MoveTo(round(TextWidth('00')),Fcentre-round(FA*(12-i*1.5)));
            //    LineTo(Fcentre +(i-24)*FStep,Fcentre-round(FA*(12-i*1.5)));
            //  end;
            //end;
            //   if ( (Fcentre -(15)*FStep )> (round(1.5*TextWidth('00')))) then
            //   begin
            //   MoveTo(round(1.5*TextWidth('00')),Fcentre);
            //   LineTo(Fcentre -(15)*FStep,Fcentre);
            //   end;

            //end;


            // --------- Width (top)  ----
//for i:=0 to 13 do
// TextOut(Fcentre -FStep*(13-2*i)-(Canvas.TextWidth('42')div 2) ,0,IntToStr(2*i+16));
            //for (int i = 0; i < 14; i++)
            //{
            //    g.DrawString((2*i+16).ToString(), System.Windows.Forms.Control.DefaultFont, Brushes.Black, this.Fcenter -this.Fstep*(5-2*i)-1, 0);
            //}



//for i:=0 to 2 do
//begin
//MoveTo(Fcentre -FStep*(13-2*i),TextHeight('0'));
//LineTo(Fcentre -FStep*(13-2*i),Fcentre -FA*(4+3*i));
//end;
//MoveTo(Fcentre -FStep*(7),TextHeight('0'));
//LineTo(Fcentre -FStep*(7),Fcentre -FA*10);
//for i:=1 to 6 do
//begin
//MoveTo(Fcentre -FStep*(7-2*i),TextHeight('0'));
//LineTo(Fcentre -FStep*(7-2*i),Fcentre -FA*12);
//end;
//MoveTo(Fcentre +FStep*7,TextHeight('0'));
//LineTo(Fcentre +FStep*7,Fcentre -FA*10);
//for i:=0 to 2 do
//begin
//MoveTo(Fcentre +FStep*(9+ 2*i),TextHeight('0'));
//LineTo(Fcentre +FStep*(9+ 2*i),Fcentre -FA*(10-3*i));
//end;
//// Height (Right)
//// -- labels --
//for i :=1  to 9 do
// TextOut(Width-TextWidth('00'),Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),'0'+IntToStr(i));

//for i:=10 to 15 do
// TextOut(Width-TextWidth('00') ,Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),IntToStr(i));
//// -- lines --
//for i :=1  to 15 do
//begin
//case i > 8 of
//  False:
//   begin
//    MoveTo(Width-TextWidth('00'),Fcentre-round(FA*(12-i*1.5)));
//    LineTo(Fcentre +(8+i)*FStep,Fcentre-round(FA*(12-i*1.5)));
//   end;
//  True:
//  begin
//    MoveTo(Width-TextWidth('00'),Fcentre-round(FA*(12-i*1.5)));
//    LineTo(Fcentre +(24-i)*FStep,Fcentre-round(FA*(12-i*1.5)));
//  end;
//end;
//   MoveTo(Width-TextWidth('00'),Fcentre);
//   LineTo(Fcentre +(15)*FStep,Fcentre);
//end;



            pic.Refresh();
        }