Показать сообщение отдельно
  #5  
Старый 04.06.2013, 17:26
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 74
Репутация: 518
По умолчанию

Вот сделал сам
нахожу точку и рисую, а в afterdraw просто повторяю проделаную здесь процедуру
Код:
 xi:=0;
 yi:=0;
 j:=-1+strtoint(form1.Edit18.Text);       // берём индекс КТК
 zn:=0;
 tmpx:=strtotime(xx);    //получили значение с экрана под мышью
 tmpy:=strtofloat(yy);    //получили значение с экрана под мышью
 for i:=0 to chart1.Series[j].XValues.Count-1 do                  //перебераю точки в КТК
   begin
     aaa:=chart1.Series[j].XValue[i];                // где ближайшая первая есть по значению
     strtt:=timetostr(aaa);
     aaa:=strtotime(strtt);
     if (tmpX<=aaa)and(zn=2) then
       begin
        xi:=i-1;
        zn:=3
       end;
     if (tmpX>=aaa)and (zn=0) then zn:=2;
   end;
 tx0:=Chart1.BottomAxis.CalcXPosValue(chart1.Series[j].XValue[xi]);
 zn:=0;
 for i:=0 to chart1.Series[j].YValues.Count-1 do
   begin
     aaa:=chart1.Series[j].YValue[i];
     if (tmpY>=aaa) then zn:=2;
     if (tmpY<=aaa)and(zn=2) then
       begin
        yi:=i;
        zn:=3
       end;
   end;
 ty0:=Chart1.leftAxis.CalcYPosValue(chart1.Series[j].YValue[yi]);
 tx1:=tx0+2;
 ty1:=ty0+2;
 tx0:=tx0-2;
 ty0:=ty0-2;
 point.Left:=tx0;
 point.Top:=ty0;
 point.Right:=tx1;
 point.Bottom:=ty1;
 chart1.Canvas.Brush. Color:=clblue;
 chart1.Canvas.Pen.Color:=clblue;
вопрос решён )
Ответить с цитированием